我的git log如下所示。
3c61cc9 Commit A
dcf34cd Commit B
821cfe8 Commit A
7a5a58f Commit C
0987a57 Commit D
12721a1 Commit B这里A & B出现两次,使用不同的提交ID,而且git diff 3c61cc9 821cfe8也是相同的,每次提交之间没有区别。那么有没有办法去掉这些重复的东西呢?
发布于 2020-03-07 05:05:35
假设你喜欢你的3c61cc9和821cfe8的外观,你可以这样做
git reset 821cfe8那么前两个提交将被“删除”。然后你的历史上就会有ACDB了。
但是,如果您希望通过删除821cfe8和12721a1 (取决于您是如何进入当前状态的,是否已经推送了所有这些提交,以及您的团队的协作规则)来重建您的历史,您可以尝试像这样重建您的历史:
例如:
$ git checkout <commit right before 12721a1>
$ git cherry-pick 0987a57 # (commit D)
$ git cherry-pick 7a5a58f # (commit C)
$ git cherry-pick dcf34cd # (commit B)
$ git cherry-pick 3c61cc9 # (commit A)
$ git checkout <branch>
$ get reset <commit you switched to 2 steps ago>注意:从技术上讲,这些操作都不会“删除”提交,只是将它们从该分支的历史记录中删除。
https://stackoverflow.com/questions/60559316
复制相似问题