【问题标题】:Clear Git commits before push推送前清除 Git 提交
【发布时间】:2020-11-08 07:31:43
【问题描述】:

我提交然后尝试推送太大而无法上传到 GitHub 的文件。 我怎样才能“清除”这个提交以便能够进行另一个提交并推送它?

【问题讨论】:

  • 你可以使用 git reset --soft HEAD^ 这里的 head 是之前提交的 head

标签: git github git-commit


【解决方案1】:

您可以简单地通过软重置修改当前提交,然后取消暂存过大的文件:

# 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>.

    【讨论】:

    • git revert 会创建一个新的提交...我不认为 OP 要求这个
    • 我把它从我的答案中删除了。
    • 硬重置可能不是 OP想要的。这将丢掉所有的工作以及大文件。
    • 我的答案中也有软重置以保留更改,我已重新格式化我的答案。
    猜你喜欢
    • 2013-12-17
    • 2016-12-07
    • 2016-07-06
    • 2010-12-19
    • 2021-04-20
    • 2017-02-20
    • 2014-05-06
    • 2020-01-20
    • 1970-01-01
    相关资源
    最近更新 更多