从pull请求中删除修改后的文件

时间:2016-09-12 22:03:25

标签: git github version-control

我目前在拉取请求中有3个已修改的文件(没有新文件)。

我想从pull请求中删除其中一个文件,因此pull请求只包含对两个文件的更改,并使第三个处于原始的未触摸状态。

我尝试过几件事(检查文件的原始版本等等)但它仍然显示为PR中的已更改文件。

有解决方法吗?

6 个答案:

答案 0 :(得分:119)

切换到您从中创建拉取请求的分支:

$ git checkout pull-request-branch

用另一个分支中的文件覆盖修改过的文件,让我们考虑一下 master

git checkout origin/master -- src/main/java/HelloWorld.java

提交并将其推送到遥控器:

git commit -m "Removed a modified file from pull request"
git push origin pull-request-branch

答案 1 :(得分:7)

您可能希望修改提交,然后执行强制推送,这将使用PR更新分支。

我建议你这样做:

  1. 关闭公关广告,以便任何人在审核时都不会将其拉入,直到您做出更改为止。
  2. 在不必要的更改之前对提交进行软重置(如果这是您可以使用的最后一次提交git reset --soft HEAD^,或者如果它是不同的提交,则您需要替换' HEAD ^ '使用提交ID)
  3. 放弃(或撤消)对您不打算更新的文件所做的任何更改
  4. 进行新的提交git commit -a -c ORIG_HEAD
  5. 强制推送到您的分支
  6. 重新拉开请求
  7. 现在您的分支已更新,Pull Request将包含您的更改。

    Here's指向Gits文档的链接,他们在撤消提交和重做下有一个非常好的示例。

答案 2 :(得分:2)

切换到您从中创建拉取请求的功能分支:

示例:$ git checkout pull-request-branch

用另一个分支中的文件覆盖修改后的文件:

$git checkout origin/master -- src/main/java/HelloWorld.java

提交并推送到远程:

$git commit -m "removed a modified file from PR"
$git push

答案 3 :(得分:0)

拉取请求只是:将一个分支合并到另一个分支的请求。

您的提款请求不包含"什么,它只是一个标记说"请将这个分支合并到那个"。

PR在Web UI中显示的一组更改只是目标分支和功能分支之间的更改。要修改拉取请求,您必须修改功能分支,可能需要强制推送到功能分支。

在您的情况下,您可能想要修改您的提交。不确定您的确切情况,但是交互式rebase和add -p的某些组合应该让您解决。

答案 4 :(得分:0)

从拉取请求中删除文件,但从本地存储库中删除文件。

  1. 使用以下命令转到创建请求的分支

git checkout-c:\ temp ..... 下一个 git checkout origin / master-c:\ temp ... u用任何其他分支替换origin / master。 下一个 git commit -m c:\ temp ..... 下一个 git push来源

注意:文件路径没有单引号或双引号

答案 5 :(得分:0)

切换到要还原文件的那个分支。

这是它的命令。

只需要选择你的文件要恢复到的远程和分支

git <remote>/<branch> -- <file_path_from_project_root_folder>.

就我而言,它是

git checkout origin/master -- .github/workflows/ci.yml