分享

Git 问题, 一个 master, 多个新功能分支, 怎样有序地合并和提交?

 岁月如风99 2015-09-22
0

以前大多个是一个的使用 Git, 到 Github 上提交的场景, 对多人开发合并项目经验不多,
现在遇到的是在 Github 上存在主分支, 本地需要修改多个功能和 bug 等等,
我是按以前实习回来的同学提示, 在多个分支开发不同的功能, 然后合并提交..
合并和提交的顺序不是确定的, 因此不能简单直接用 merge 每次一个个叠加.
有时我用 rebase, 但有发现 commit 顺序不是时间顺序, 到线上被 merge 以后也不是非常清晰
于是我想问一下面对这样的场景, 用怎样的方式管理会更合适?

有在 Google, 但一些细节不清晰.. 比如 commit 显示顺序.. 还有再次被 merge 后的细节..

1

有一个著名的分支模型呢。也可以看看github flow http://hooopo./articles/fe...

#1 hit9 · 2013年03月22日 · 回复 举报

展开评论

3 个回答

5
coder 1.8k 2013年03月22日 回答

git支持很多种工作流程,我们采用的一般是这样,远程创建一个主分支,本地每人创建功能分支,日常工作流程如下:

去自己的工作分支
$ git checkout work

工作
....

提交工作分支的修改
$ git commit -a

回到主分支
$ git checkout master

获取远程最新的修改,此时不会产生冲突
$ git pull

回到工作分支
$ git checkout work

用rebase合并主干的修改,如果有冲突在此时解决
$ git rebase master

回到主分支
$ git checkout master

合并工作分支的修改,此时不会产生冲突。
$ git merge work

提交到远程主干
$ git push

这样做的好处是,远程主干上的历史永远是线性的。每个人在本地分支解决冲突,不会在主干上产生冲突。

0
liujin834 3 4月20日 回答 · 4月20日 更新

可以在一条分支上一起开发,你有变更的时候,在提交前,使用

git stash

这样将本地的修改全部缓存在一个堆栈中了,然后把别人的修改同步过来

git pull --rebase

下一步是将自己的变更恢复到最新的节点上

git stash pop

然后再使用git commit提交,这样就会让一个分支的版本按顺序继续发展,而不是像织毛衣一样,你可以看一下我们使用这种方法前后的对比图

之前:
图片描述

之后
图片描述

撰写答案

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多