3

我的 git 树有点乱,我想知道修复它的最佳方法。

*   3f599ff - (HEAD, origin/enterprise-options, enterprise-options) Merge branch
|\
| * 5087bec - (upstream/master) Remote Change (2 days ago)
| * 6705b5f - Remote Change (2 days ago)
* | 880c0a6 - New Feature (3 hours ago)
|/
* 312968b - Blah (4 weeks ago)

我应该在提交新功能 880c0a6 之前进行任何更改,但我没有。我决定合并上游/主 5087bec。如何恢复合并提交 3f599ff、拉取更改然后重新提交?

或者这棵树是否适合?我正在为一个开源项目做贡献,这就是我的拉取请求目前的样子。

4

1 回答 1

2

只要您还没有推送到远程存储库,您就可以撤消合并并拉取更改。

git reset --hard 880c0a6
git pull --rebase

这将删除远程提交并将您的存储库重置为您上次的本地提交。--rebase然后,您可以使用具有线性历史记录的选项来拉取更改。仅当您的更改尚未推送到远程仓库时才执行此操作。你正在改变历史,这是一种不好的做法。您必须这样做git push -f,其他任何使用遥控器的人在从遥控器更新时都会遇到问题

否则,像这样的合并提交通常是无害的。

于 2013-09-21T16:05:06.057 回答