当我遇到这种情况时,我似乎总是跌跌撞撞,完全搞砸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
完成回扣,你就应该得到你想要的东西。请注意,这样的重新调整意味着重写分支的历史。因此,如果此分支被其他人公开共享,则应采取预防措施。