这一节你将了解有关于版本,分支有关的操作。
一.git tag
上一节中我们讲到了历史commit节点的回滚操作,如果说每一个commit节点是你项目的一个小版本的话,那么git tag
将帮助你标识项目的大版本。
当前状态中,我们已经对我们的123项目提交了三个小版本,我们使用了git tag v1.0
命令标识我们的最后一次提交为v1.0版本。git tag
命令可以查看当前项目的所有版本。
如果我们相对之前的提交记录标记版本,我们可以附上对应提交记录的id,使用git tag v0.1 d9d07a1
标记我们的第一次提交为v0.1版本。
tag标签的好处是,一旦我们的提交记录多起来,我们可以通过git tag
命令查看项目大的更新,并且可以使用git checkout v0.1
命令回退到我们的v0.1版本。
二.git branch
我们可以把我们的工作区想象成一颗树,最开始我们的树只有一根主干,而我们可以随时从主干创建一条分支,即branch。
git branch
查看所有的分支,git branch b1
创建一个名为b1的分支,git checkout b1
切换到b1分支。或者你可以使用git checkout -b b2
创建并切换到b2分支。
由于我们是在master主分支的v0.1版本切换到b2分支,所以我们在b2分支中看到的123.txt也是我们第一次提交的内容,现在我们在b2分支中基于v0.1版本添加一行文本保存并提交。
现在我们回到master分支,可以看到123.txt并没有在v0.1版本。而是最新的版本,这是因为我们之前回退到v0.1版本时并没有做任何的修改提交操作,所以当我们再次回到master的时候,123.txt依旧是最新版本。并且我们并没有发现我们在b2分支中添加的"我是b2"内容。
我们使用git merge b2
命令将b2分支合并到当前分支即master主分支中,可以看到git提示我们发生了冲突。被<<<,>>>包围的部分即为冲突部分,这时候需要我们自己手动解决冲突。
我们手动把冲突解决后,即可正常添加缓存并提交了。
如果你在合并分支后不想继续保留b1,b2分支,可以使用git branch -D b1 b2
来删除b1 b2分支。