git - pull 另一个分支的更改并重播我的本地更改

标签 git

我对 git 中的所有 merge/ rebase war 有点困惑。

假设我为我的功能检查了一个新分支。我犯了几次。但是后来有人将一些更改推送给 master,我希望对我当前的工作进行更改。我希望将所有新更改 pull 到我的分支,并在这些新更改之上重放我的提交。

我应该怎么做才能在这些更改之上重播我的本地更改,而不重写服务器上已有内容的历史记录?

最佳答案

这完全取决于您的新分支是否也已推送到远程。

如果不是,您可以在您的分支上执行git rebase master。这会搁置您在分支上的所有提交,应用来自 master 的新提交,然后尝试一个接一个地应用您的提交。如果您的提交导致冲突,git 会让您修复提交,以便更改有意义。 (如果您更改了在之前的提交中已经更改的行并且 git 不确定您到底打算发生什么,则会发生这种情况)。

如果您的分支在远程,执行 git rebase 不是一个好主意。您将更改分支的历史记录,并且任何 pull 该分支的人都将难以获得新的提交。在这种情况下,最好只执行 git merge master 以避免更改远程历史记录。

http://www.git-scm.com/book/en/Git-Branching-Rebasing#The-Perils-of-Rebasing

关于git - pull 另一个分支的更改并重播我的本地更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22664247/

相关文章:

git - 如何访问 TFS 中 PR 的更改目标分支

git - osxkeychain 没有存储 github 凭据?

git - 删除gitlab上的提交

git - 如何在 git 存储库中创建单独的 git 文件夹

git - 在 git subtree pull 之前是否需要 git fetch?

c# - 需要 Squirrel.Windows Update Manager.GitHub Update Manager Assistant

Git日志解释

git - git 如何检测相似文件,以进行重命名检测?

git - 如何删除与标签同名的git分支?

git - 如何使收到的具有更改历史记录的 GitHub PR 可 merge ?