当我遇到这种情况时,我似乎总是跌跌撞撞,完全搞砸git提交。我希望这次能避免。这是我的设想。我的公关中有以下4项承诺:

Commit 1: Remove unused routes for the projects controller
Commit 2: Add PR request changes and modify similar_by_tags_route
Commit 3: Merge Master and resolve git merge conflicts
Commit 4: Reinsert rubocop disablement for project.rb

我需要将这些提交重新转换为一个提交。现在我不能只做一个rebase -i HEAD~4因为讨厌的合并从主人。有没有一种方法可以简单地删除commit 3并合并commit 1、2和4?我真的很想在这方面得到一些帮助,因为当遇到像这样棘手的合并时,我总是显得一团糟。

最佳答案

您可以尝试对分支进行交互式重新定位,只需删除包含合并提交的行。运行git rebase -i HEAD~4将显示提交列表,如下所示:

pick Commit 1: Remove unused routes for the projects controller
pick Commit 2: Add PR request changes and modify similar_by_tags_route
pick Commit 3: Merge Master and resolve git merge conflicts
pick Commit 4: Reinsert rubocop disablement for project.rb

删除包含合并提交的行,留下以下内容:
pick Commit 1: Remove unused routes for the projects controller
pick Commit 2: Add PR request changes and modify similar_by_tags_route
pick Commit 4: Reinsert rubocop disablement for project.rb

现在,将第2次和第4次提交更改为squash,告诉git将这些提交合并为第一次提交:
pick Commit 1: Remove unused routes for the projects controller
squash Commit 2: Add PR request changes and modify similar_by_tags_route
squash Commit 4: Reinsert rubocop disablement for project.rb

完成回扣,你就应该得到你想要的东西。请注意,这样的重新调整意味着重写分支的历史。因此,如果此分支被其他人公开共享,则应采取预防措施。

09-04 17:30
查看更多