清除Git提交记录以便推送

4
我提交了一些太大无法上传到GitHub的文件,现在我该如何“清除”这个提交以便能够进行下一个提交并上传呢?

你可以在这里使用 "git reset --soft HEAD^" 命令,其中 HEAD 是上一个提交的头。 - Amit Tiwary
2个回答

6
您可以通过软重置(soft reset)来修改当前提交,然后再取消暂存过大的文件以实现修改:

# from your feature branch
git reset --soft HEAD~1

这将把 HEAD 指针后退一个提交,同时将来自包含过大文件的提交的所有更改暂存。然后,您可以简单地取消暂存所有过大的文件,再次提交,然后推送:

# from feature
git reset -- path/to/toolarge1.ext
git reset -- path/to/toolarge2.ext
git reset -- path/to/toolarge3.ext
# and so on for all large files

git commit -m 'new commit with no large files'
git push origin feature

2

如果想保留工作,请使用git reset --soft HEAD~1

如果需要撤销所做的更改,请使用git reset --hard。但是,您可能需要指定分支,只需使用git reset --hard origin/<branch-name>即可。


1
"git revert" 会创建一个新的提交记录... 我不认为 OP 是在询问这个。 - Suraaj K S
1
我从我的答案中删除了它。 - jaabh
1
一个硬重置可能 不是 OP 想要的。那将会丢弃所有工作和大文件。 - Tim Biegeleisen
1
我在我的答案中也有软重置,以保持更改,我已重新格式化我的答案。 - jaabh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接