在玩了一些遥控器之后,我的所有承诺都翻了一番。例如,不是
C3107
..
C3
C2
C1
我拿到了
C3107
C3107
..
C3
C3
C2
C2
C1
C1
其中,重复提交具有相同的名称但不同的散列。问题是我注意到它太晚了,而不是我在它上面添加了一堆好的承诺。
有没有一种方法可以删除重复的提交,而不是我添加的松散提交?
附言:如果对我有帮助,我在尝试遥控器之前会有一个储存库的副本。
提前谢谢你了。
更新正如你们中的许多人所问的那样,结果是这样的:我有一个回购R1,然后我又创建了一个R2。在我的本地副本(与R1一起更新)中,我将源更改为R2并尝试推送,但一些大文件被GitHub拒绝。所以我做了git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename'
,这让git认为存储库是不同的。然后,我将所有内容都推送到R2,进行了一些提交,并决定切换回R1,再次更改原点并推送。然后,我向R1添加了更多的提交。
3条答案
按热度按时间pqwbnv8z1#
带着一点贝壳魔力、贪婪和极大的自信,答案可能是肯定的。但我太谨慎了,不会用一个命令就把事情搞得一团糟,超过3000个提交!
但是,您可以通过使用交互式重定基址来(适度地)进行交互。这有点费力,但你对正在发生的事情有很好的控制力,而且你从Git那里得到了很好的反馈。
mi7gmzs62#
您可以运行以下命令:
这将打开一个互动会话。将堆栈上除第一个提交之外的所有内容都切换为修复或挤压。
我有一个git koan(Koan 8),它可以引导你完成
git rebase -i
。rur96b6h3#
最后,我决定赞成用cherrypy。