我目前正在处理 featurex
分支。我们的主分支名为 our-team
。自从我开始处理 featurex
以来,更多的变更已经被应用到了 our-team
分支。
我已经在本地完成了这个操作,以获取来自 our-team
的最新更改:
git checkout our-team
git pull
在我将featurex
推送合并之前,我想要在本地将our-team
分支中的所有更改合并到featurex
中,以确保一切按预期工作。
我该如何操作?
我目前正在处理 featurex
分支。我们的主分支名为 our-team
。自从我开始处理 featurex
以来,更多的变更已经被应用到了 our-team
分支。
我已经在本地完成了这个操作,以获取来自 our-team
的最新更改:
git checkout our-team
git pull
在我将featurex
推送合并之前,我想要在本地将our-team
分支中的所有更改合并到featurex
中,以确保一切按预期工作。
我该如何操作?
在按照以下步骤之前,请记住:featurex
是正在合并和推送更改的分支。
进入你的分支 featurex
git checkout featurex
将our-team
分支的更改合并到featurex
分支中。git merge our-team
或者git cherry-pick {commit-hash}
如果您想合并特定的提交。
注意:在将 our-team
分支合并到 featurex
分支之前推送,可能需要解决冲突。
当你在自己的分支featurex
时,可以使用rebase,例如git rebase our-team
。
这将把你的分支的起点移动到our-team
分支的末尾,并合并所有featurex
分支上的更改。
git checkout our-team git pull git checkout featurex git merge our-team
- Anthonyour-team
的更改,则需要运行 git fetch && git rebase origin/our-team
。你的命令假设存储库已经更新。 - Makotogit fetch origin our-team
或者git pull origin our-team
但首先你应该确保你已经处于你想要更新到的分支(featurex)上。
our-team
所做的提交,然后应用对featurex
所做的提交,并提示您根据需要合并它们。--force
标志的作用。
其他发帖者建议的是进行合并。这将获取featurex
分支以及其当前状态,并尝试将其与our-team
的当前状态合并,提示您进行一个大的合并提交并在推送到our-team
之前修复所有合并错误。区别在于您在our-team
新提交之前应用了您的featurex
提交,然后修复了差异。您也不会重写历史记录,而是添加一个提交记录,而不是重写先前的提交记录。git checkout -b my-backup
。虽然这不是完整/正确的备份,但如果合并/变基出现问题,它会为你节省一些麻烦。
只要你不推送它并在之后清理它,这样做就没有真正的缺点。 - CyberFoxar你已经快要到达目的地啦 :)
剩下需要做的是
git checkout featurex
git merge our-team
这将把our-team合并到featurex中。
以上假设您已经在featurex中提交或隐藏了您的更改,如果不是这种情况,则您需要先执行此操作。
假设有人在询问如何在不使用 git pull 的情况下拉取更改 - git pull 实际上会先运行 git fetch,然后执行 git merge,因为它组合了两个序列,即 fetch + merge。对于那些仅需从另一个分支拉取更改而无需这样做的人:
git checkout <branch with changes wanted>
git checkout -b <new branch>
git fetch
,执行git merge our-team
仍未包含来自远程our-team
的最新更改。我必须先切换到our-team
,执行git pull
,然后再切换到featurex
才能合并。Git的思维方式与我不同。 - nielsen