Git分支管理
来源:互联网 发布:台球厅计时软件 编辑:程序博客网 时间:2024/06/03 20:02
1、创建、合并、删除分支
首先,我们创建dev分支,然后切换到dev分支:
git checkout -b dev
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch devgit checkout dev
然后,用git branch命令查看当前分支:
git branch
git branch命令会列出所有分支,当前分支前面会标一个*号。现在,dev分支的工作完成,我们就可以切换回master分支:
git checkout master
现在,我们把dev分支的工作成果合并到master分支上:
git merge dev
git merge命令用于合并指定分支到当前分支。
合并完成后,就可以放心地删除dev分支了:
git branch -d dev
删除后,查看branch,就只剩下master分支了:
git branch
注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。
在两个分支合并的过程中,可能出现冲突:
README.md文件存在冲突:
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。用git log –graph命令可以看到分支合并图。
git log --graph --pretty=oneline --abbrev-commit
2、分支管理策略
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
git merge --no-ff -m "merge with no-ff" dev
准备合并dev分支,请注意–no-ff参数,表示禁用Fast forward。
3、Bug分支
软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。
Git提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
git stash
首先确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支:
修复完成后,切换到master分支,并完成合并,最后删除issue-101分支:
bug已经修复完了。现在,是时候接着回到dev分支干活了!用git stash list查看刚才的工作现场存。
git stash list
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了。
git stash pop
你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:
git stash apply stash@{0}
参考链接:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743862006503a1c5bf5a783434581661a3cc2084efa000
- 3.3 Git 分支 - 分支管理
- git 分支管理-----本地分支,远程分支
- Git分支管理
- Git 创建管理分支
- Git分支管理策略
- Git分支管理策略
- Git分支管理策略
- Git分支管理策略
- Git分支管理策略
- Git分支管理
- git分支管理
- Git远程分支管理
- git分支管理策略
- Git分支管理策略
- Git分支管理策略
- Git分支管理策略
- Git 分支管理策略
- Git分支管理策略
- 触发器
- openCV学习笔记
- Java学习笔记--cmd编译运行小坑
- python 列出指定目录下的所有目录和文件
- strlen()函数和strcat()函数
- Git分支管理
- selenium 基本方法使用二_javascript的应用_对滚动条的操作
- js跨域详解
- 红黑树深入剖析及Java实现(图文并茂娓娓道来)
- git管理项目思想
- 多无线通信终端并行自动化射频测试系统开发与应用
- Unique Paths--lintcode
- Hibernate入门(2):基本使用
- 【15】vue.js — 动画