git学习(二)
Git基础
获取Git仓库
1. 将本地目录转换为Git仓库
更换目录至尚为进行版本控制的项目目录,执行git init初始化Git仓库。
该目录下会生成.git文件夹。
2. 从其他服务器中克隆Git仓库
git clone <url>
如:git clone https://github.com/libgit2/libgit2
自定义本地仓库名:
git clone <url> <name>
如:git clone https://github.com/libgit2/libgit2 mylibgit
Git支持多种数据传输协议,如上面使用的https://,也可以使用git://协议和SSH协议
记录更新到Git仓库
文件变换周期

常用命令
| 命令 | 说明 |
|---|---|
git status |
查看状态 |
git status -s |
以简洁格式查看状态 |
git diff |
比较当前文件和暂存区快照之间的差异 |
git diff --staged |
比较暂存区和最后一次提交文件之间的差异 |
git add <filename> |
跟踪新文件/添加到暂存区 |
git commit |
提交到远程Git仓库,会先打开默认编辑器编辑附加信息 |
git commit -m <message> |
提交到远程Git仓库,直接在-m选项后添加提交信息 |
git commit -a -m <message> |
将跟踪文件暂存起来一并提交,跳过了暂存步骤 |
git rm <filename> |
删除文件 |
git rm -f <filename> |
强制删除以放已暂存区的文件 |
git rm --cached <filename> |
把文件从暂存区移除,但不删除本地文件 |
git mv <filename> <newname> |
改名,如把文件名a改为b时相当于执行mv a b、git rm a、git add b |
查看提交历史
git log 常用选项
| 选项 | 说明 |
|---|---|
--stat |
查看每次提交的简略信息 |
--pretty=oneline |
将每次提交放在一行显示 |
撤销操作
补充提交
git commit --amend
将代替上一次提交
如:
git commit -m 'update'
git add forgotten_file
git commit --amend
撤销未暂存修改
git restore <filename>
撤销暂存文件
git restore --staged <filename>
远程仓库的使用
使用Git多人协作时,为了完善项目,你需要获取别人的版本。
远程仓库就是你要完成的项目在网络中版本库(其他人的版本),
为了能在任何Git项目上协作,你需要了解如何管理远程仓库。
查看远程仓库
先查看下你所配置的远程仓库:
git remote
会列出每个远程服务器的简写。
当你克隆从远程服务器克隆一个仓库时,会得到一个默认名:origin。
如果你还想知道这些远程服务器的url,可以输入:
git remote -v
你便可以看到远程服务器的名字及其url。
添加远程仓库
多人协作过程中,你需要添加多个远程仓库:
git remote add <shortname> <url>
添加了一个新的远程仓库并指定了它的简写。
如:
git remote add pb https://github.com/paulboone/ticgit
抓取(fetch)和拉取(pull)远程仓库
如果你想获取远程仓库中你没有的信息,可以用git fetch命令:
git fetch <shortname | url>
注意git fetch只会下载数据到你的本地仓库,不会自动合并或修改你当前的工作,所你需要手动合并。
如果你当前的分支设置了跟踪远程分支,你可以使用:
git pull
来自动抓取后该远程分支到当前分支。
推送到远程仓库
你分享自己的项目时,需要将本地仓库推送到远程仓库:
git push <remote> <branch>
查看远程仓库详细信息
你如果想查看更多关于远程仓库的信息:
git remote show <remote>
远程仓库的重命名和移除
重命名:
git remote rename <remote> <newname>
移除:
git remote remove <remote>
打标签
Git可以给仓库中某一次提交打标签,人们往往通过这个功能来标记发布节点(如v1.0、v2.0)。
列出已有标签
git tag
如果想按照特定模式查找标签:
git tag -l <mode>
如:
$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2
v1.8.5-rc3
v1.8.5.1
v1.8.5.2
v1.8.5.3
v1.8.5.4
v1.8.5.5
创建标签
标签可分为轻量标签的附注标签,轻量标签只是某次提交的引用,而附注标签是Git数据库中的完整对象,能够包含额外信息(如打标签者的名字、邮箱,日期)。
附注标签
创建附注标签你只需要在运行tag命令时指定-a选项:
git tag -a <tagname>
如:
$ git tag -a v1.4 -m "my version 1.4"
$ git tag
v0.1
v1.3
v1.4
指定-m选项可以指定一条信息存储在标签中,否则会打开编辑器让你编写存储在标签中的信息。
你可以通过git show查看标签信息:
$ git show v1.4
tag v1.4
Tagger: Ben Straub <ben@straub.cc>
Date: Sat May 3 20:19:12 2014 -0700
my version 1.4
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
轻量标签
创建轻量标签不需要指定任何选项:
$ git tag v1.4-lw
$ git tag
v0.1
v1.3
v1.4
v1.4-lw
v1.5
使用git show你只会看到提交信息,它只是一个引用:
$ git show v1.4
tag v1.4
Tagger: Ben Straub <ben@straub.cc>
Date: Sat May 3 20:19:12 2014 -0700
my version 1.4
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schac/on@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
后期打标签
然后在标签命末尾指定校验和。
共享标签
git push不会将标签推送至远程服务器上,需要显式共享:
git push origin <tagname>
共享全部标签:
git push origin --tags
删除标签
git tag -d <tagname>
别名
git config --global alias.<alias> <cmd>
如运行git config --global alias.logg 'log --pretty=oneline'
后,运行git logg相当于运行git log --pretty=oneline。
浙公网安备 33010602011771号