Git操作简要介绍(3)-分支管理

版权声明:版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/lililuni/article/details/83349824

完整操作:Git操作-文件管理、远程仓库、分支、标签
打印版笔记:Git操作.pdf

1: 创建与合并分支

  1. 创建分支1dev: git branch dev;切换至div分支:git checkout dev,一句话:git checkout -b dev
  2. git branch命令查看当前分支,当前分支前面会标一个*
  3. 合并分支 ,先git checkout master切换到主分支,然后执行git merge dev进行合并。然后可以再执行git branch -d dev删除分支
  4. 查看分支:git branch
    创建分支:git branch name
    切换分支:git checkout name
    创建+切换分支:git checkout -b name
    合并某分支到当前分支:git merge name
    删除分支:git branch -d name

2: 解决分支冲突

  当Git无法自动合并分支时2,就必须首先解决冲突。解决冲突后,再提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。用git log --graph命令可以看到分支合并图。
  备注: 进入log后直接按 Q就可以退出。

3: 分支管理策略

  合并分支时3,默认采取的为Fast farword模式,这种合并看不到合并历史,但是这种模式下,删除分支会丢掉分支信息。
1.禁用Fast farword模式时,合并分支会产生一个commit, git merge --no-ff -m "merge with no-ff" dev 其中,--no-ff参数,表示禁用Fast forward。
采用git log --graph --pretty=oneline --abbrev-commit查看分支历史。

备注:不用–no-ff,实际上只是将master的指针update成dev分支而已,用的还是dev的commit ID,而使用之后,则是重新commit了一哈,有了新的commit ID
在这里插入图片描述

4: Bug分支

我个人觉得场景是这样的。设A为游戏软件

  1. master 上面发布的是A的1.0版本
  2. dev 上开发的是A的2.0版本
  3. 这时,用户反映 1.0版本存在漏洞,有人利用这个漏洞开外挂
  4. 需要从dev切换到master去填这个漏洞,正常必须先提交dev目前的工作,才能切换。
  5. 而dev的工作还未完成,不想提交,所以先把dev的工作stash一下git stash。然后切换到master
  6. 如果是在master修复bug,就在master建立分支issue101并切换. git checkout -b issue101
  7. 在issue101上修复漏洞,并git commit
  8. 修复后,在master上合并issue101 ,git merge --no-ff -m "merged bug fix 101" issue-101
  9. 切回dev,git stash list命令看看stash内容,然后git stash pop,恢复的同时把stash内容也删了继续工作。

5:强制分支删除

  发一个新feature,最好新建一个分支;如果要丢弃一个没有被合并过的分支,可以通过git branch -D branchname强行删除。

6:多人协作

多人协作的工作模式通常是这样4

  1. 查看远程库信息,使用git remote -v

  2. 本地新建的分支如果不推送到远程,对其他人就是不可见的;

  3. 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

  4. 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

  5. 建立本地分支和远程分支的关联,使用git branch --set-upstream-to=origin/master master

  6. 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。


  1.   创建与合并分支原理详解 ↩︎

  2.   解决分支冲突详解 ↩︎

  3. 分支管理策略 ↩︎

  4. 多人协作↩︎

猜你喜欢

转载自blog.csdn.net/lililuni/article/details/83349824