git分支

分支管理

  • 创建一个分支

    git branch develop
    
  • 切换到一个分支

    git checkout develop
    
  • 创建并切换到一个新的分支

    git checkout -b new_branch
    
  • 查看分支,其中不带参数显示本地分支,-a所有的分支,-r远程分支, -v显示分支和分支的最后一次 commit, 列出的分支中,带 ***** 的为当前的分支,要从该清单中筛选出你已经(或尚未)与 当前分支合并的分支,可以用 --merged 和 --no-merged 选项

    git branch
    git branch -a
    git branch -r
    git branch -v
    git branch --merged
    git branch --no-merged
    
  • git删除分支,不能删除当前的分支,必须先切换到另外的一个分支上才行

    git branch -d new_branch
    
  • 分支重命名

    git branch -m <旧分支名> <新分支名>
    

git merge

  • git merge将分支合并,下面命令将develop分支合并到当前分支上

    git merge develop
    
  • Merge好在它是一个安全的操作。现有的分支不会被更改,避免了rebase潜在的缺点。 另一方面,这同样意味着每次合并上游更改时feature分支都会引入一个外来的合并提交。 如果master非常活跃的话,这或多或少会污染你的分支历史。虽然高级的git log 选项可以减轻 这个问题,但对于开发者来说,还是会增加理解项目历史的难度。

  • gitmerge
    gitmerge

冲突解决

  • 可以通过git diff 和git status找到冲突的地方

  • Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容

  • 可以能过下面命令,查看分支的合并图

    git log --graph
    

分支管理

  • 合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支 信息,如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支 历史上就可以看出分支信息

    git merge --no-ff -m "merge with no-ff" dev
    
  • 分支管理策略 在实际开发中,我们应该按照几个基本原则进行分支管理: 首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活; 其次,干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时, 再把dev分支合并到master上,在master分支发布1.0版本; 最后,每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

bug分支

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

  • 当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,可以 用 git stash list 查看statsh历史,然后一种用 git stash apply 恢复,但是恢复 后,stash内容并不删除,你需要用 git stash drop 来删除,另一种方式是用 git stash pop, 恢复的同时把stash内容也删了

    git checkout dev
    ...工作中
    git stash
    git checkout master
    git checkout -b issue_01
    ...解决问题
    git branch -d issue_01
    git checkout dev
    git stash pop
    ...继续工作
    

feature分支

  • 开发一个新feature,最好新建一个分支

  • 一个分支如果合并过,可以删除,如果要丢弃一个没有被合并过的分支,可以 通过git branch -D

    git branch -d branch_name
    git branch -D branch_name
    

多人协作模式

  • 多人协作模式

    • 首先,可以试图用git push origin branch-name推送自己的修改;
    • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
    • 如果合并有冲突,则解决冲突,并在本地提交;
    • 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
    • 如果git pull提示"no tracking information",则说明本地分支和远程分支的链接关系 没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
    • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name, 本地和远程分支的名称最好一致;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容

  • 冲突合并 创建分支feature1分支,在feature1中修改readme文件,然后在分支中添加并提交, $gi...
    奋斗中的Kevin阅读 637评论 0 1
  • 1. 创建与合并分支 在Git里每次提交会被串成一条时间线,这条时间线就是一个分支.而HEAD是指向当前分支,当前...
    程序员七哥阅读 544评论 0 5
  • 曾相信眼睛、耳朵和嘴巴是最真实的东西,后来明白每个人都有面具,有的用来坚强,有的用来逞强,也有的用来保护和做自己。...
    索菲玛苏阅读 243评论 0 0
  • 73规律的半天 请教了一下十一阿姨,只能说过去我太相信自己所相信的,却不知道该如何实践,在实践的过程当中仍然有做得...
    sueva阅读 101评论 0 0
  • 男人为什么要多喝茶? 2017-10-21关注老于了解更多☞茶叶知识 柴米油盐酱醋茶...琴棋书画诗酒茶 喝茶的男...
    茗品人生阅读 521评论 0 10