Git:从Pull Request中删除文件

har*_*ant 11 git github

我错误地将现有文件的本地更改添加到了我的PR中.我想仅还原此文件而不在本地删除此文件.我只是希望它不会出现在Pull Request中.我不想创建新的分支,因为很多人对此PR中的其他文件进行了评论.

Vas*_*h K 31

  • 我们称您的 PR 为从 feature-branchmaster
  • 确保您在您的feature-branch.
  • 现在可以说,您已经做了一些不必要的更改./abc1.py,并且您希望abc1.py与 master 相同。

运行以下命令:

git checkout origin/master -- ./abc1.py

现在如果你运行:

git status

您将进行与您的分支相同的更改master。现在您可以提交更改并推送。

  • 这不回答如何从拉取请求中删除文件。 (3认同)

Eug*_*ash 20

您可以"取消"特定文件,git reset然后修改原始提交:

git reset HEAD^ /path/to/file
git commit --amend --no-edit
git push -f
Run Code Online (Sandbox Code Playgroud)

这不会影响工作副本中文件的版本.

或者,如果要删除多个文件,可以将分支头重置为上一个提交并创建一个新文件:

git reset HEAD^  # move the tip of the branch to the previous commit
git commit -C ORIG_HEAD file1 file2 [...]  # list the required files
git push -f
Run Code Online (Sandbox Code Playgroud)


Jar*_*ber 19

如果您更新了已存在的文件并希望将其从PR中删除:

假设您正在处理分支staging,并且您打了一个名为的文件validate_model.py.

要从PR中删除此文件还原其更改,只需执行以下操作:

git checkout staging -- validate_model.py

  • 错误:pathspec 文件与 git 已知的任何文件不匹配 (2认同)

Mr.*_*ond 10

可能有很多方法可以删除/撤消 PR 中的文件更改。
我没有找到具体的步骤,所以这里是:

设想:

假设您要从 PR 中删除的文件是:
C:\GitRepos\MyProject\SomeFile.cs

该文件已修改或不包含任何更改(与主文件中的相同),但仍显示在您的 PR 中。

解决方案:

1)确保您已签出创建 PR 的功能分支。

2)搜索文件提交历史: git log "C:\GitRepos\MyProject\SomeFile.cs"

您将看到格式为的多条记录:

   commit <commit id> 
   Author: <author name> 
   Date: <Date of the commit> 
   <commit message>
Run Code Online (Sandbox Code Playgroud)

3)在对 .txt 文件进行任何更改之前找到提交SomeFile.cs。复制commit id.

4)使用之前复制的内容检查提交commit id

git checkout <commit id> "C:\GitRepos\MyProject\SomeFile.cs"

5)如果您现在检查,git status您将看到SomeFile.cs现在正在等待更改。

6)您需要做的最后一件事是通过简单地使用以下命令来提交这些更改:

git commit -m "Remove the SomeFile.cs from PR"

并推动你的改变。:)


Tun*_*nde 8

git checkout - 文件名

这将放弃对文件的先前更改并将其还原为上次提交的更改.

你可以在这里了解更多Git-Basics-Undoing-Things

阅读"修改已修改文件"部分.

  • 为了澄清,首先您需要获取添加了该文件的先前提交ID(使用git log &lt;filename&gt;)。然后只是`git checkout &lt;提交ID&gt; &lt;文件名&gt;`。然后,如果您调用“ git status”,则会看到可以检入该文件以将其从PR中删除。 (3认同)