我知道这些问题的各种排列都在四处流淌,但我还没有能够发现任何解决我特定问题的方法。事情是这样的:
我已经在GitHub上托管了一个回购。它是两个远程仓库的起源 - 一个是我的开发机器,另一个是服务器。我犯了一个愚蠢的错误,并且在一年半的时间内有一个脚本提交增量用户数据库备份。所以现在我在git repo中提供了大约200mb的文件和另外1Gb的增量db更改(是的,我吸取了教训)。在视觉上,它看起来像这样," C"表示合法的代码更改和" DB"意味着它只包含一个不重要的数据库备份:
C1--C2--C3--C4--DB--DB--DB--DB--DB--DB--DB--DB...(1.5 years)...DB--DB...
我想做的是:
/--DB--DB--DB--DB--DB...<--(throw all this away forever)
/
C1--C2--C3--C4--//<--REVERT TO THIS POINT --C5--C6--C7....
我基本上创建了一个包含所有这些愚蠢数据库提交的分支,将我的回购支持到分支离开的点,然后删除分支。关于如何做到这一点的任何想法?理想情况下,我不必创建新的GitHub仓库,但我会接受任何性质的建议。
答案 0 :(得分:0)
找到您想要回复的提交:
git reset --hard <commit-hash>
重置您的(本地)存储库指针:
git push -f origin master
force²将此推送到您的服务器(²,因为您必须覆盖历史记录)
git prune
随后的DB提交将在下次修剪,或者你立即修剪(修剪对你已经实现的,理想的清理没有影响。它只是真正摆脱那些未引用的东西)
backup
。
如果你想安全玩,我会建议
In [67]: pd_tmp_start = pd_tmp_start.mask(pd_tmp_start.cumsum()==0)
In [68]: pd_tmp_start
Out[68]:
0 1
0 NaN NaN
1 NaN 0.3
2 1.2 0.4
3 0.0 0.0
的分支(没有检查它,只是指向你的旧提示!)简而言之: