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