Git 分支管理

分支的作用

开发新功能或者修复bug时一般会用到分支,既不影响别人的工作,也能让自己的工作实现小步提交,还能保证主分支clean。

分支相关的操作

创建与合并分支

查看当前分支 git branch

git branch命令会列出所有分支,当前分支前面会标一个*号。

创建分支 git branch <name>

切换到master分支:git checkout master

<name>是分支的名字

切换分支 git checkout <name>

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

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev

创建远程分支git push --set-upstream origin <name>(这条命令不用记,git push就行,git会提示你push到远程需要的命令)

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

git merge命令用于合并指定分支当前分支
dev分支合并到master分支(注意此处要先切换到master分支):git merge dev

删除分支 git branch -d <name>

删除dev分支git branch -d dev

删除后最好再查看一下分支 git branch

删除远程分支git push origin --delete <name>

修改分支名称

本地,需要修改名称的分支不是当前分支:
git branch -m oldName newName
如果是当前分支改名字:
git branch -m newName

远程分支重命名
如果修改远程分支,只需要将本地分支重命名为新分支名称,然后删除远程分支,再把本地分支上传就可以了

查看分支合并图 git log --graph

bug分支

可能会遇到这种情况:正在dev分支上开发,工作进行到一半也没办法push,此刻需要修改一处bug,如何解决?
Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
git stash
之后再用git status查看工作区,就是clean的(除非有 没有被git管理的文件),此刻就可以创建新的分支来修复bug.

首先要确定需要在哪个分支上修复bug. 假定需要在master分支上修复bug,就在master分支上创建临时分支:
git checkout master
git checkout -b issue-01

修复bug后,提交修改,(这里的提交只是commit,不是push)换回master分支,完成合并,删除issue-01分支:
git merge --no-ff -m "merged bug fix 101" issue-01

完成!是时候回到dev分支继续干活了:git checkout dev

此时看一下工作区仍然是clean:git status
git stash list命令看一下:
git stash list

工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:

  • git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
  • git stash pop恢复的同时把stash内容也删了

恢复后再用git stash list查看,就看不到任何stash内容了.

你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:
git stash apply stash@{0}

清空stash中的内容:git stash clear

多人协作

推送分支git push origin <name>

  • 推送到主分支:git push origin master
  • 推送到其他分支,例如dev分支:git push origin dev

假如现在要在dev分支上开发,就必须创建远程origindev分支到本地,于是用这个命令创建本地dev分支:
git checkout -b dev origin/dev
创建后就可以时不时的把dev分支push到远程。

如果遇到push失败,有冲突的话,先git pull.(但是讲道理,我觉得多人协作情况下,每次push之前应该先pull,解决完冲突再push)

如果git pull失败了,可能原因是没有指定本地dev分支与远程origin/dev分支的链接(一般都会有提示),根据提示,设置dev和origin/dev的链接:
git branch --set-upstream-to=origin/dev dev
之后再git pull,然后再push.

查看远程库信息git remote -v


References:
[1] 廖雪峰:分支管理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • 冲突合并 创建分支feature1分支,在feature1中修改readme文件,然后在分支中添加并提交, $gi...
    奋斗中的Kevin阅读 628评论 0 1
  • 1. 创建与合并分支 在Git里每次提交会被串成一条时间线,这条时间线就是一个分支.而HEAD是指向当前分支,当前...
    程序员七哥阅读 539评论 0 5
  • 创建与合并分支 git branch 分支007 -----创建分支007 git checkout 分支007 ...
    xlayzheng阅读 220评论 0 0
  • 问, 情觅何处? 却忆, 樱花灿烂人相睦。 到如今, 秋风落叶月伴孤, 满目相思尽酸楚。 一夜春风桃花沐, 满园花...
    东北老农阅读 448评论 3 15
  • "当日子只剩下生活,只剩下你一个人,只有这个时候,一切真才会显现出来,像是退潮后的沙滩,不再拥有海浪的声讨和庇护。...
    Gigi熊阅读 170评论 0 3