git工作流

  1. 上游分支用merge,下游分支用rebase
    会减少很多无意义的merge,以及保持master分支的树干净。

  2. 原理:凡是不能fast forward 都不能push。
    不能fastforward 就会产生一次合并的提交,这次提交会将远程的终点和本地的终点合并起来作为一个新的终点。所以才有了问题3。

  3. 有两种情况会导致失败或者会导致一次新的无意义的merge


    image.png

一种是上图这种,很奇怪,分支自己合并自己。



一种是上图,毫无意义的merge。

出现上面两种情况的原因是:
第一种是分支上的,例如dev分支,分支做的东西修改了,然后commit了,并且push到了远程分支(也就是origin dev)。 然后执行 rebase master的操作,这时候就会出现这种情况。
会在提交时提示

父节点图

这时候强制提交即可。 git push --force
这种情况 可以参考此链接

第二种情况是再master分支上commit后再pull,这时候因为pull的内容在commit后的,所以需要重新生成一次commit到本地,才能让本地master 知道变化。
可以看到无意义的提交有两个parent commit的


image.png

这种情况可以看链接
链接上有张图

image.png

可以看到 合并后的E,其实他的父节点就是c和d,所以我们看到了上面父节点图的那个父级的由来了。

  1. 总结:
    反正要拉取远程分支的东西,本地的最好要么commit,要么stash掉,保持当前状态为空(没有修改)
    这时候拉取肯定能fast forward了。
  1. 正确流程
    参考链接
    不涉及合并操作时,也就是只在自己分支上提交时,使用sourcetree,其他使用git,更清楚到底用了什么命令导致。
    然后正确的流程:
    (1)分支都commit完到自己分支,(需要备份的可以push)
git add .
git commit -m "???"

(2)然后master 拉取最新

git checkout master
git pull origin master

(3)切换到分支,git rebase master

git checkout dev_zrh
git rebase master

(4) 有冲突解决,并add ,并继续 git rebase --continue, 重复本步骤,直到所有都解决

https://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html
git checkout FILE --ours{--theirs}
git rm FILE 
git add FILE 

(5) 如果不想rebase了 git rebase —abort
(6)都解决完,commit
(7)master 再拉取一遍,有更新则继续步骤3,无则git merge dev 并commit、push 到远程master

git checkout master
git pull origin master
git merge zrh_dev
git push origin master

(8)dev push 到远程dev (需要备份的使用此步骤)

===================
ToitorseGit 流程

  1. 切换自己开发分支


    image.png
  2. git commit 提交自己需要上传的修改


    image.png
  3. 如果本地有不需要提交的东西, git stash 这些东西


    image.png

    image.png
  4. 这时候空间干净了

  5. 切换到master

  6. pull master, 拉取master最新更新


    image.png
  7. 切换到自己开发分支

  8. git rebase, 选择master


    image.png
  9. 有冲突就解决


    image.png

    image.png

    对应三种解决冲突方式
    对于二进制类型无法使用vscode解决的,

  • 如果使用我的修改,则用我分支的“Resolve conflict using 'Branch_zrh”
  • 如果用别人的,则使用“Resolve conflict using 'Branch_master”
  • 如果用别人的,建议先把自己的修改后的文件手动复制保存,然后
    “Resolve conflict using 'Branch_master”,然后等rebase 结束后再修改一次这个文档。
  • 如果是代码形式的冲突,直接去vscode中解决,然后回来在Rebase界面使用“Resolved” 解决即可。
    例如以下的txt冲突


    image.png

    image.png

可以看到,Incoming Change 是自己的修改。 HEAD 是别人的(Master上的)修改。
自己看情况是用自己的(Accept Incoming Change)还是别人的(Accept Current Change),还是都是(Accept Both Changes)
解决完之后,“Resolve” 即可。


image.png

(7)master 再拉取一遍,有更新则继续步骤6,无则git merge dev 并commit、push 到远程master


image.png

(8)如果自己Stash 暂存有东西的话,就需要切换到自己分支,Pop Stashs 即可。

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

推荐阅读更多精彩内容

  • 多种多样的工作流使得在项目中实施Git时变得难以选择。这份教程提供了一个出发点,调查企业团队最常见的Git工作流。...
    JSErik阅读 4,379评论 2 8
  • git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...
    神刀阅读 3,758评论 0 10
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,642评论 9 163
  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,409评论 0 7
  • Git飞行规则(Flight Rules) 前言 英文原版README 翻译可能存在错误或不标准的地方,欢迎大家指...
    骑摩托马斯阅读 1,626评论 0 8