码迷,mamicode.com
首页 > 其他好文 > 详细

Git的分支管理

时间:2018-05-10 00:03:33      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:详细   管理   推送   code   string   font   状态   删除   远程   

创建与删除分支

  指针HEAD总是指向当前分支,不管是master分支还是dev分支,当前切换的是哪个分支就指向哪个。

  Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

  在Fast forward模式下,删除分支后,会丢掉分支信息的commit信息。准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward,则会在master中保留分支dev的commit信息。   

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

代码冲突的概念及解决

  出现问题的条件,当满足以下四个条件时,master合并dev时会有代码冲突(代码行冲突):

  1. 当版本在C的位置创建新的分支dev。
  2. 分支dev经过一次或者多次提交。
  3. 分支master也经过一次或者多次提交。
  4. 分支master与dev对相同文件的相同位置(一般以行为单位)进行了修改。

  导致的结果

    分支master相对于版本C没有做修改的地方,如果分支dev做了修改,则会合并dev的修改,包括添加或者删除文件。

    如果master和dev都修改了相同文件的相同行,则会出现代码冲突。

  解决办法:

    需要修改存在代码冲突的文件,再次git add file,git commit,则会解决问题。此时应该删除分支dev,因为已经合并,没有利用价值。

技术分享图片

保存现场

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

注意,经过实测

在 dev分支中做了文件修改,不做git stash现场保存的话,会把文件的修改状态包括暂存区状态带到master,并认为是在master的状态。

更多使用命令

git branch -D <name> :强行删除。分支经过多次修改没有合并,使用git branch -d命令会提示错误 。则

git remote -v查看远程库信息显示更详细的信息。

git push origin branch-name从本地推送分支使用,如果推送失败,先用git pull抓取远程的新提交;代码冲突的机制是一样的。

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

git branch --set-upstream branch-name origin/branch-name建立本地分支和远程分支的关联,使用;

 

Git的分支管理

标签:详细   管理   推送   code   string   font   状态   删除   远程   

原文地址:https://www.cnblogs.com/lvzh/p/9013380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!