失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Git学习笔记(二)——Git的分支管理 储藏和标签

Git学习笔记(二)——Git的分支管理 储藏和标签

时间:2019-01-18 22:07:58

相关推荐

Git学习笔记(二)——Git的分支管理 储藏和标签

分支管理

开始的时候,只有一条主分支,即master分支,master分支是一条线,git用master指向最新的提交,再用HEAD指向master

创建/合并分支

创建新的分支时,如dev,Git新建了一个指针dev,指向master相同的提交,再把HEAD指向dev,这样就表示当前分支在dev

之后再对dev分支进行修改时,dev指针就往前移动,但是master指针不变

当需要合并时,只需要将master指针重新指向dev的当前提交,就完成了合并

git checkout

$ git checkout -b devSwitched to a new branch 'dev'

git checkout命令加上-b参数表示创建并且切换,相当于以下两条命令

$ git branch dev$ git checkout dev

在新版本的git中,提供了一种新的命令来切换分支:git switch

$ git switch -c dev$ git switch master

第一行表示创建并切换到新的dev分支,第二行命令表示直接切换到已有的master分支

git branch

git branch命令会列出所有分支,当前分支前面会表一个*

$ git branch* devmaster

之后便可以在dev分支上进行工作,执行add、commit等命令

如果dev分支上的工作完成,那么可以继续用checkout命令来切换回到master分支,但是需要注意,仅仅这样做的话在dev分支上做的更改会消失!所以我们需要用一条命令来将指定的分支合并到当前分支

git merge

$ git merge dev

合并完成之后,就可以删除dev分支了

**注意:**合并过程中可能出现类似下图出现的冲突情况,此时需要手动解决冲突,才能继续合并

通常在合并分支的时候,Git会用Fast forward模式,但这种模式下,删除分支后不会保留历史信息,如果强制禁用Fast forward模式(方式是加入--no-ff参数),GIt会在merge时生成一个新的commit,保留历史信息。

$ git merge --no-ff -m "no-ff" dev

使用这一命令,merge之后:

储藏(stach)

如果当前分支还有工作没有完成,不能够commit,但是又必须要在master分支来完成一个更紧急的工作(如修复一个紧急bug),那么可以用git stash命令来把工作现场储藏起来,然后去修复bug,修复完成后,再用git stash pop命令,回到工作现场。

在master分支上修复的bug,如果想合并到当前分支,可以用git cherry-pick <commit>命令,把bug提交的修改”复制“到当前分支

删除分支

如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>命令来强行删除。

$ git branch -D feature

推送分支
git remote

要查看远程库的信息,可以使用git remote命令

如果要推送某个分支,如dev分支:

$ git push origin dev

标签管理

创建标签

在Git中打标签,首先要切换到需要打标签的分支上:

$ git checkout master

git tag

然后,就可以用git tag <name>命令来打一个标签

$ git tag v1.0

可以用git tag命令查看所有标签

默认标签是打在最新提交的commit上的,如果想要打在其他commit上,需要找到历史提交的commit id,然后再打上标签,如对id为f52c522的commit

$ git tag v0.5 f52c522

删除标签

$ git tag -d v1.0

该命令可以删除标签’v1.0’

推送标签

命令git push origin <tagname>可以推送一个本地标签

命令git push origin --tags可以推送全部未推送过的本地标签

参考资料:/wiki/896043488029600

如果觉得《Git学习笔记(二)——Git的分支管理 储藏和标签》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。