Git-如何删除历史提交,但如何保留上一次提交的当前文件状态

时间:2019-04-02 15:47:06

标签: git github

文件大于100MB时出现错误,我无法推送

git push -u origin my_branch 

给Github。 我已将此文件/目录添加到 .gitignore 然后我完成了:

git rm -r my_directories

然后

git commit -m "ignoring large files"

但是我无法将此更改推送到Github 就像我上次推送和当前推送之间的提交历史一样,还有其他提交包含此过大文件的提交。 我一直在本地使用此文件提交,并将错误推送出去。

所以我需要像上一次提交一样的当前代码状态,但是没有中间的提交历史记录。

我已经尝试过这样的解决方案:

$ git log --oneline
$ git checkout master
$ git branch -f <branch_name> <commit_id>
$ git add <filename>
$ git commit --amend --no-edit

但是在git add上,我注意到git branch -f将磁盘上的文件恢复到2周前的状态,.gitignore更改为不忽略太大的文件,并尝试将此文件添加到磁盘上。 我很担心这会取消我的2周工作,但幸运的是 使用最新的提交ID执行还原的还原。 git branch -f

但是现在我一直处在我提交历史的地方,其中包含无法在github上推送的太大文件。

如何实现这一目标,并安全地实现这一目标。

enter image description here

0 个答案:

没有答案