#学习笔记# git windows - 2 - 分支管理

教程来自 廖雪峰-Git教程,因为我有不太懂的点,并且为了方便自己查找信息,所以整理了学习笔记。教程请去原博看,本文仅做个人学习用途..侵删,谢谢...

1. 分支管理

1.1 分支管理是什么?

这个的图比较简单明了(对我来说)。
阮一峰-Git分支管理策略

最好只有一个主分支(master stream),在修改bug或者增加新功能时用其他分支branch管理;只有在调试通过,并且必要时才把修改内容整合到主分支,发布重大版本。

1.2 创建和切换分支

  1. 注意文件夹的路径,例如/b/a的子目录/a/b,在/b/a下创建的分支是不一样的。
  2. 创建和切换,$ 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. 提交修改的方式同前。

1.3 合并分支

  1. 先切换回master分支 git checkout master
  2. 合并, 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
  1. 删掉分支 dev
$ git branch -d dev
Deleted branch dev (was 6ce73c4).

$ git branch
* master

1.4 处理分支冲突

  1. 提交方式同上,会提醒错误信息。具体冲突信息看$ 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.
  1. 其中如果是新分支与master同时修改了,再创一个master版本,合并一下就行了。
  2. 理智告诉我应该会有其他冲突...以后再想吧。

1.5 分支管理策略

  1. fast forward合并就看不出来曾经做过合并
  2. 禁用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,再去继续当前工作。

  1. 工作现场用git stash存储起来,然后查看git status应该是干净的,没有需要保存的修改。
  2. 确认要在哪个分支上修复bug,先切换到那个stream,然后创建分支。同上。
  3. 完成后,回到工作的分支,继续工作git stash pop

1.7 多人协作

  1. 要查看远程库的信息,用git remote
  2. 必须要推到远程库并且远程同步的分支是:
    master : 主分支
    dev:团队开发分支
  3. 抓取分支,pull下来后操作几乎同上: git clone [email protected]:michaelliao/learngit.git
  4. 遇到冲突,pull个新的再次合并

参考信息:

  1. 阮一峰-Git分支管理策略
  2. 成 富-Git 分支管理最佳实践
  3. Understanding the Git Workflow
    视线逐渐模糊...明天继续学

你可能感兴趣的:(#学习笔记# git windows - 2 - 分支管理)