Git日志条目显示两次,但使用不同的提交id
我的Git日志条目显示两次,但使用不同的提交id,git,Git,我的git日志如下所示 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是相同的,每个提交之间没有区别。那么有没有办法删除这些重复项呢?假设您喜欢您的3c61cc9和821cfe8外观,就这么做吧 git reset 821cfe8 然后,前两个
git日志
如下所示
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
是相同的,每个提交之间没有区别。那么有没有办法删除这些重复项呢?假设您喜欢您的3c61cc9
和821cfe8
外观,就这么做吧
git reset 821cfe8
然后,前两个提交将被“删除”。而您的历史记录中只有ACDB
但是,如果您希望通过删除821cfe8
和12721a1
(取决于您进入当前状态的方式、是否已推送所有这些提交以及您的团队协作规则)您可以尝试如下方式重建历史记录:
$git签出
$git cherry pick 0987a57#(提交D)
$git cherry pick 7a5a58f#(提交C)
$git cherry pick dcf34cd#(提交B)
$git cherry pick 3c61cc9#(提交A)
$git结帐
$get重置
注意:从技术上讲,所有这些都不会“删除”提交,而只是将它们从该分支的历史记录中删除。使用
git log--decoration--oneline--graph
绘制提交的图形表示。添加--all
,使Git从所有标签(分支名称、标记名称等)开始。这些复制品的存在可能是有原因的,或者可能你只是以某种方式进行了复制(这是可能的,但Git通常不允许你这么做)。你是说Git diff 3c61cc9 dcf34cd
是空的吗?Jona,我没有编辑过这个问题。确定那不是Git diff 3c61cc9..dcf34cd
?