续上篇git实用知识梳理(一)最基础的知识
,这里开始讲讲分支管理的故事。
分支管理策略
master分支是稳定的,仅仅用来发布新版本,而不是干活用的。
dev分支是用来干活的,是不稳定的版本。等需要发布版本的时候,再把dev分支合并到master。
团队中的每个人都建立自己的分支,然后常常往dev分支合并。
合并分支,加上-no-ff参数,是用普通模式合并,能看出来曾经做过合并。
fast forward合并则看不出来曾经做过合并。
创建、合并分支
在git里,是使用指针来指向不同的分支,而HEAD则指向当前分支。所以合并两个分支的时候,只要修改指针指向即可。创建分支是增加指针,删除分支则是删除指针。
git鼓励用分支完成某个任务,合并后再删掉分支。因为创建、合并、删除分支都非常快,而且在分支上工作更安全。
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
通常,合并分支时,如果可能,Git会用“Fast forward”模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用“Fast forward”模式,可以使用--no-ff
参数,表示禁用“Fast forward”。
解决冲突
存在冲突时,使用$ git status
查看冲突的文件。
Git会用<<<<<<<,=======,>>>>>>>标记出不同分支的内容。我们查看冲突部分,手工修改解决之后,再提交就可以了。
分支策略
master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活。
dev分支是不稳定的,需要版本发布时,再把dev分支合并到master上,在master分支发布对应版本。
团队合作的时候,每个人都有自己的分支,然后把自己的分支经常的往dev分支合并。
团队合作时需要善用git的分支功能。
bug分支:每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。
但是,如果需要修改bug的时候,当前正在dev上干活,还没有提交,怎么办?此时可以使用git stash
把当前工作现场“储藏”起来,等以后恢复现场后继续工作。
用git stash list
命令看刚才的工作现场,恢复的话有两种方式:
一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash内容也删了。
网友评论