教程来自 廖雪峰-Git教程,因为我有不太懂的点,并且为了方便自己查找信息,所以整理了学习笔记。教程请去原博看,本文仅做个人学习用途..侵删,谢谢...
1. 分支管理
1.1 分支管理是什么?
这个的图比较简单明了(对我来说)。
阮一峰-Git分支管理策略
最好只有一个主分支(master stream),在修改bug或者增加新功能时用其他分支branch管理;只有在调试通过,并且必要时才把修改内容整合到主分支,发布重大版本。
1.2 创建和切换分支
- 注意文件夹的路径,例如
/b
是/a
的子目录/a/b
,在/b
和/a
下创建的分支是不一样的。 - 创建和切换,
$ git checkout -b dev
, 其中dev
是branch的名字。也可以拆成以下两行
#查看当前分支情况,*x,其中x是当前分支。以下表明当前在master主分支
$ git branch
dev
* master
#创建分支dev
$ git branch dev
#切换到分支dev
$ git checkout dev
Switched to branch 'dev'
#切换到master 分支
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
- 提交修改的方式同前。
1.3 合并分支
- 先切换回master分支
git checkout master
- 合并,
Fast-forward
就是直接将master
的下一版本指向dev
分支。
$ git merge dev
Updating 0bbe26e..6ce73c4
Fast-forward
readme.txt | 4 +++-
test.txt | 1 -
2 files changed, 3 insertions(+), 2 deletions(-)
delete mode 100644 test.txt
- 删掉分支
dev
$ git branch -d dev
Deleted branch dev (was 6ce73c4).
$ git branch
* master
1.4 处理分支冲突
- 提交方式同上,会提醒错误信息。具体冲突信息看
$ git status
$ git merge ft1
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.
- 其中如果是新分支与master同时修改了,再创一个master版本,合并一下就行了。
- 理智告诉我应该会有其他冲突...以后再想吧。
1.5 分支管理策略
-
fast forward
合并就看不出来曾经做过合并 - 禁用
Fast forward
(普通模式)的合并方法是加参数--no-ff
$ git merge --no-ff -m "merge with no-ff" dev
分支管理策略同上,master stream仅用于发布重大版本。在分支上干活。
1.6 Bug/feature 分支
准则就是需要修改时创建分支,别乱搞master stream,调好再合并merge。
Bug 分支,目的是有紧急的bug时,需要先修复bug,再去继续当前工作。
- 工作现场用
git stash
存储起来,然后查看git status
应该是干净的,没有需要保存的修改。 - 确认要在哪个分支上修复bug,先切换到那个stream,然后创建分支。同上。
- 完成后,回到工作的分支,继续工作
git stash pop
1.7 多人协作
- 要查看远程库的信息,用
git remote
- 必须要推到远程库并且远程同步的分支是:
master : 主分支
dev:团队开发分支 - 抓取分支,pull下来后操作几乎同上:
git clone git@github.com:michaelliao/learngit.git
- 遇到冲突,pull个新的再次合并
参考信息:
- 阮一峰-Git分支管理策略
- 成 富-Git 分支管理最佳实践
-
Understanding the Git Workflow
视线逐渐模糊...明天继续学