提交的整个git历史记录加倍

背景

我刚注意到我的仓库中的整个提交历史都加倍了.

作为参考,我是唯一的贡献者,它是一个私人存储库.

它看起来好像有两个贡献者,因为我有一个旧帐户,其信息仍然在我的一台计算机上的git config –global user.email中.

在我克隆项目并开始从另一台计算机上进行处理之后,出现了翻倍.

摘自git日志:

commit 76cd0efa307e501abfe13cd907957e4dcff7e75e
Author: myaccount <account1@gmail.com>
Date:   Mon Mar 21 18:58:39 2016 +0100

FEATURE - Add VideoNotFoundException.

commit 0430ef9dc5d3baa2189ba1c18b4bedb9d2940e51
Author: myaccount <account2@gmail.com>
Date:   Mon Mar 21 18:58:39 2016 +0100

FEATURE - Add VideoNotFoundException.

commit 94e7221e472e29119c9e4fe48944cd4d7528e207
Author: myaccount <account1@gmail.com>
Date:   Mon Mar 21 18:41:11 2016 +0100

FEATURE - Add previous/next video links to video view.

commit 8b26a51b84d4fb3ae72eefe2834649ff8bc8b7ce
Author: myaccount <account2@gmail.com>
Date:   Mon Mar 21 18:41:11 2016 +0100

FEATURE - Add previous/next video links to video view.

commit 7f9b3b6f214e445918d509d7f9377d3d7ce875da
Author: myaccount <account1@gmail.com>
Date:   Tue Mar 15 17:05:46 2016 +0100

CLEANUP - Remove unused code/uses.

commit c83fa2c238d1437c967b40d6e807c2567eb7572d
Author: myaccount <account2@gmail.com>
Date:   Tue Mar 15 17:05:46 2016 +0100

CLEANUP - Remove unused code/uses.

存储库中现在有234个提交,其中大约一半是实际提交.

这也反映在GitHub上:

《提交的整个git历史记录加倍》

git log --graph --decorate --oneline --all however does NOT reflect this.

*   303bbfe (HEAD, origin/master, origin/HEAD, master) MERGE
|\  
| * b8052ce REFACTOR - Refactor front page content for maintainability.
| * b5907b2 VISUAL - Improve front page mobile view.
| * 0430ef9 FEATURE - Add VideoNotFoundException.
| * 8b26a51 FEATURE - Add previous/next video links to video view.
| * c83fa2c CLEANUP - Remove unused code/uses.
| * 9e82b8f BUGFIX - Fix redirecting /login to front page.
| * 491b88e BUGFIX - Redirecting old playlist and video links to new ones. WIP: Code duplication!
| *   a7da158 Merge branch 'master' of https://github.com/alrasch/UDLv2
| |\  
| | * a3bfe1b BUGFIX - Fix 500 error on 404 page.
| * | 258d2e9 BUGFIX - Redirecting old URLs to new ones.
| |/  
| * 4426681 FEATURE - Add more UDL logo assets.
| * 7d15c7c FEATURE - Add custom 404 page.
| * 6fbb5dd FEATURE - Add 'forgot password' function.
| * 92dd4c8 VISUAL - Fix video view layout.
| * 8a7decb VISUAL - Scale UDL logo to 75% on front page.
| * 0900fbc VISUAL - Rearrange discipline view layout.
| * 1ba38c8 VISUAL - Scale UDL logo on playlist view down to 75%.
| * eef7cd1 VISUAL - Fix playlist view layout.
| * b7fa6cb Made sidebar space on front page.
| * ace9fb6 COSMETIC - Logo on front page and navbar. Rounder buttons.
| * bbf12b3 Add MathJax LaTeX sitewide.
| * 6629128 Customize register form and add email activation.
| * 27f7114 FEATURE - Add basic search to navbar.

我的尝试

如果那是我必须做的事情,我不反对变基和压扁.我已经尝试过使用git rebase -i HEAD~n但是加倍并没有反映在那里的提交列表中,所以我不能.

我可以将存储库重置为较早的状态(基于某个时间点)吗? (作为参考,我的回购是在GitHub上.)

如果没有任何作用,我想我可以重新启动存储库,因为所有功能都会被保留.这只是一个混乱的历史.

相关问题

请不要关闭作为Fixing git double-commit history的副本.虽然问题类似,但是接受的答案不适用于我的情况,因为doubled提交没有反映在你选择pick / squash的git rebase文件中.

最佳答案 经过大约一周的调查,这个答案是GitHub团队通过电子邮件推荐的.

原因

在某些时候,我做了一个git filter-branch,之后我强制推送(git push -f origin),但我忽略了rebase我的本地克隆.在下一次推动中,我的本地历史被推到了远程历史之上,导致了提交的加倍.

可悲的是,没有快速解决这个问题.正如我最初的怀疑那样,解决方案是需要对所有提交进行完全重组,从而挑选并压制每对双重提交.

为此,您可以使用Git’s interactive rebase tool.

对于具有任何实质历史的存储库,这将是非常重要的任务,并且可能非常耗时.

替代解决方案

工作树仍处于良好状态,因此另一种解决方案是将工作树简单地迁移到新项目.

警告:通过执行此操作,您将丢失提交历史记录,但让我们面对它,这首先是目标.

点赞