2015-12-14 30 views
0

我只是看着git commit日志,并且显然我一直在推动2位作者。所以我有重复。Git推送作为2位作者

如何删除所有提交的历史记录?我花了一个钟头查找信息这样做,但我不能这样做git push --force(它被拒绝,非快进)

git log

http://pastie.org/private/fwxzqoin5lhmhwzsxdnnga

+0

是否有可能看到你的git日志的片段? –

+0

@AshutoshJindal完成。 –

+0

检查[this](http://stackoverflow.com/questions/8058509/github-how-would-you-delete-all-commits-by-a-certain-username)。您可以删除特定作者的提交。 – deepakb

回答

0

不能删除提交但你可以做git reset --hard <hash>到你的出发点。

0

你可以试试下面的命令,但造成的后果(GIT v2.6.4)当心:然后

git checkout <ref you want to keep from> 
git checkout -b my_new_master 
git push origin +my_new_master:master 

Git的垃圾收集器应该从旧的主销毁所有的提交。 From the docs

混帐推产地+开发:主

更新原点库的主分支与Dev分支,允许非快进更新。这可能会导致原始存储库中悬挂的未提交的提交。考虑以下情况,即快进是不可能的:

     o---o---o---A---B origin/master 
           \ 
           X---Y---Z dev 

上面的命令将原点库改为

        A---B (unnamed branch) 
           /
         o---o---o---X---Y---Z master 

提交A和B将不再属于同一个分支象征性的名字,所以无法达到。因此,这些提交将通过源存储库上的git gc命令删除。

或者,也可以得到相同的结果来分解这些步骤,特别是对于旧版本的Git。我已经在一些虚拟存储库上完成了这个工作,但时间很长,而且我相信毫无意义,因为出于非常好的理由而感到沮丧:这样做可以打破其他存储库。但是,上面的命令应该足够好,因为您正在使用个人或低变更的存储库。