git undo当前分支中的提交文件

时间:2017-10-20 19:15:38

标签: git github

我用谷歌搜索但仍然无法找到正确的答案如何做以下事项: 我正在研究我的分支并承诺并推送file1.txt许多提交之前。但我实际上并不想在我公开的PR中使用这个文件。最简单的方法是什么? 我尝试了git rmgit rm --cached,但它删除了文件,但我只想撤消之前提交的内容

3 个答案:

答案 0 :(得分:1)

如果您已经推送它,则需要重写提交的整个历史记录,然后进行强制推送(通常不允许您重写历史记录)

此外,如果您这样做,请确保没有其他人签出此分支并进行更改。如果他们这样做并且你破坏了历史,那么他们将很难恢复。

如果你想继续,github在https://help.github.com/articles/removing-sensitive-data-from-a-repository/有一个很好的指南或确切的用例。

答案 1 :(得分:1)

正如@Andreas Wederbrand所建议的那样,如果您不关心重写提交的整个历史记录,那么请切换到创建pull请求的分支,获取commit-id,重置它并推送到远程,如遵循:

git reset --hard <commit-id>
git add -m "Revert commit for file file1.txt"
git push origin <branch-name>

编辑:正如@Todd --hard所提到的那样,将丢弃整个提交。

如果提交包含除file1.txt以外的更改,则从创建提取请求的分支中检出文件,然后按如下方式推送到远程:

git checkout <desired-branch> -- path/to/file1.txt
git add -m "Revert commit for file file1.txt"
git push origin <branch-name>

答案 2 :(得分:0)

您可以签出旧版本的文件:

git commit

然后提交它:

git rm <file>
git commit

完成

如果要删除文件,只需在文件系统中删除它,然后按:

{{1}}

完成

相关问题