【发布时间】:2019-02-26 05:16:39
【问题描述】:
我想问一下正确的 git 工作流程。
假设我们有分支master 和ultraFeature。
在创建ultraFeature 之后,开发人员添加了几个提交到分支和主控。他们正在引发冲突。
更新更改并使其在合并时快进的最佳方法是什么? 我也希望它在一次提交中完成。
我的实际解决方案。据我了解,如果有人使用我的分支或从我的分支创建分支,我将很危险。怎样才能做得更好?
git checkout master
git pull
git checkout ultraFeature
git pull
git reset --soft HEAD~N // N is number of commits since creating branch
git commit -m "Summing all changes in branch..."
git rebase master
// solve conflicts
git checkout master
git merge ultraFeature
【问题讨论】:
-
Git 非常灵活,因此很多人会提供同样多的不同工作流程。特别是我,我喜欢保持功能分支“紧密”。他们没有合并。例如,当“master”向前移动时,我会重新设置基准,以便我可以从其他人那里获得更改,并且如果必须对这个功能分支进行精心挑选/重新设置基准,则可以轻松完成所需的原始修订一个接一个(因为没有合并,对吧?)。
-
我会假设你的主人是稳定的。如果是这种情况,只需从您拥有的功能分支(每个功能都在一个分支中,对吗?至少它应该)打开对 master 的拉取请求并一一检查冲突,在外部合并工具中解决它们(不要使用 git 网站来合并,它可能会弄乱你的功能分支)。
-
@LeonardoAlvesMachado 我需要把它放在一个提交中。所以我发的方式是正确的?
-
如果您唯一关心的是通过一次提交将您的代码从功能分支转移到主分支,您可能需要考虑
squash mergestackoverflow.com/questions/5308816/how-to-use-git-merge-squash
标签: git