如何使用远程分支的最后提交以外的所有内容更新本地分支?



在一个远程特性分支上有许多提交。同一分支的本地副本已经过时,我想用远程功能分支更新它。然而,远程分支的最终提交是有问题的,我想在更新期间忽略它。在分行的本地副本上,我应如何办理手续?

注意:

我的本地分支与远程分支不同。我已经用不同的分支名称为自己做了一个副本。

如果您想用远程分支的倒数第二个提交来重新构建本地分支,只需签出本地分支并执行:

git rebase $remote/${remote_branch}^1

也就是说,如果本地分支称为feature,远程分支称为rfeature,远程分支称为origin,您将执行:

git checkout feature
git fetch origin   # make sure things are up-to-date
git rebase origin/rfeature^1

如果你还没有加入本地的分支机构,那就加入吧。说

git fetch
git merge origin/otherBranch~1

将另一个分支合并到你的分支中,但没有上次提交的问题。

当你从我所知道的拉出时,你真的不能忽略最后一次提交。但是你可以拉出所有的东西,然后修改为你想要的提交,像这样:

git checkout COMMIT_ID

我建议不要丢弃最后一次提交,而是恢复它。使用这种方法,当您必须推动远程分支时,您将不必强制它。

git pull --rebase
git revert HEAD