下面是部分分支操作的指令和图示,圆圈○表示一个提交(commit)记录,矩形表示分支,它指向先前的一个提交记录,由这个记录可以遍历之前所有的提交记录 首先初始化了一个git,这个git中只有一个master分支,包含两个commit记录

提交修改

将已修改文件添加至暂存区

git add dir/filename # 添加指定文件
git add . # 添加所有已修改文件

提交修改到本地仓库

将暂存区的改动提交到本地的版本库,使用git commit命令我们就会在本地版本库生成一个40位的哈希值,用于版本回退

git commit -m "message" # message就是本次提交的简要说明

创建分支:

现在我们创建一个新分支,命名为develop

git checkout -b develop # 表示创建并切换到develop分支

切换到分支

此时master分支和develop分支都指向C1这个提交记录。我们分别在这两个分支上进行修改并提交:

git commit
git checkout master # 切换到master分支
git commit

合并分支

可以看到master分支和develop分支指向了不同的提交记录,接下来我们将develop分支合并到master分支中

git merge develop

执行上面的指令后,产生了一个新的提交记录C4,由C4我们可以遍历之前所有的提交记录,但是此时master分支和develop分支仍然指向不同的提交记录。继续切换到develop分支,将master分支合并到develop分支中:

git checkout develop
git merge master

打标签, 描述快照

梗概:

使用Git可以给指定提交打上标签,用来突出显示这个提交,比如将提交标记为v1.0、v2.0,等等

列举标签

使用如下命令即可列出所有标签

git tag

过滤标签:

当标签太多时,可以使用如下指令列出包含指定字符的标签

git tag -l "v1.*"

创建标签

添加-a选项即可创建标签,如下:

git tag -a v1.0 -m "version 1.0"

如上命令即可为当前提交创建一个标签,标签名为v1.0,-m选项后就是该标签的附注信息

推送标签

只使用git push命令在默认情况下不会将标签推送到 远程仓库,在创建标签后需要执行如下命令将指定标签推送到远程仓库:

git push origin <tagname>

如果要推送多个新标签,可以使用git push的—tags选项将所有标签推送到远程仓库:

git push origin --tags

删除标签

使用git tag的-d选项即可删掉本地仓库上的指定标签,如下:

git tag -d <tagname>

但是该指令不会删除远程仓库中的标签 ,还需要使用如下命令来更新远程仓库:

git push remote :refs/tags/<tagname>

切换标签

使用git checkout <tagname>指令即可将git仓库的HEAD指针指向标签所在的提交,如下:

git checkout v1.0

推送到远程仓库

本地上传,注意在推送前需要先从远程拉取

git push -u origin master # master可以更换为其他分支

从远程仓库拉取

更新本地:

git pull origin master # master可以更换为其他分支