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

时间:2016-03-31 20:16:06

标签: git github

背景

我刚注意到我的回购中的整个提交历史都加倍了。

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

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

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

摘录自git log

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上:

enter image description here

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的副本。虽然问题类似,但接受的答案并不适用于我的案例,因为加倍的提交没有反映在您选择/南瓜的git rebase文件中。

1 个答案:

答案 0 :(得分:1)

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

<强>原因

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

<强>解决方案

可悲的是,没有快速修复此问题。正如我最初的怀疑,解决方案是需要对所有提交进行完全变更,即每对提交picksquash

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

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

替代解决方案

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

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