背景
我刚注意到我的仓库中的整个提交历史都加倍了.
作为参考,我是唯一的贡献者,它是一个私人存储库.
它看起来好像有两个贡献者,因为我有一个旧帐户,其信息仍然在我的一台计算机上的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 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.
对于具有任何实质历史的存储库,这将是非常重要的任务,并且可能非常耗时.
替代解决方案
工作树仍处于良好状态,因此另一种解决方案是将工作树简单地迁移到新项目.
警告:通过执行此操作,您将丢失提交历史记录,但让我们面对它,这首先是目标.