背景
我刚注意到我的回购中的整个提交历史都加倍了。
作为参考,我是唯一的贡献者,它是一个私人存储库。
看起来似乎有两个贡献者,因为我有一个旧帐户,其信息仍然在我的一台计算机上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上:
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
文件中。
答案 0 :(得分:1)
经过大约一周的调查,这个答案是GitHub团队通过电子邮件推荐的。
<强>原因强>
在某些时候,我做了一个git filter-branch
,之后我强制推(git push -f origin
),但我忽略了重新定义我的本地克隆。在下一次推动中,我的本地历史被推到了远程历史之上,导致了提交的加倍。
<强>解决方案强>
可悲的是,没有快速修复此问题。正如我最初的怀疑,解决方案是需要对所有提交进行完全变更,即每对提交pick
和squash
。
为此,您可以使用Git's interactive rebase tool。
对于具有任何实质历史的存储库,这将是一项非常重要的任务,并且可能非常耗时。
替代解决方案
工作树仍处于良好状态,因此另一种解决方案是将工作树简单地迁移到新项目。
警告:执行此操作会丢失您的提交历史记录,但让我们面对它,这首先是目标。