以下是该方案:
# Commit A
git add .
git commit -m "Changes so far in this year"
我发现我忘了排除工作/输出文件(大量生成的图像)。除了这些文件(大约20000),我有大约50多个代码更改的文件。
在线阅读和git手册后,我明白最好的办法是更新.gitignore并生成要删除和删除缓存的文件列表。这应该从提交而不是本地文件夹中删除。让这个提交B
# Commit B
vi .gitignore
git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
git add .
git commit -m "Cleanup of generated files from commit history"
git push origin master
Counting objects: 19219, done.
error: pack-objects died of signal 9
error: pack-objects died with strange error
error: child process died of signal 9
error: died of signal 9
error: failed to push some refs to '/srv/gitrepositories/xxxx.git'
对此question about error 9的回答表明,这可能是因为git内存不足。
我的选择?
答案 0 :(得分:1)
是的,您可以使用git reset HEAD~2
永久清除历史记录中的最后2个提交,同时保留工作目录中的更改,然后git push -f
强制将更改的历史记录推送到远程。
如果您的回购信息与他人共享,则不建议您更改提交历史记录。