我有3个修改文件(没有新文件)在拉请求的时刻。

我想从拉请求中删除其中一个文件,这样拉请求只包含对两个文件的更改,而第三个文件保持原始的、未受影响的状态。

我已经尝试了一些事情(检查文件的原始版本,等等……),但它仍然显示为一个更改的文件在PR。

有解决办法吗?


当前回答

例如,您希望从branch1为文件file1、file2和file3创建PR。 现在您想从PR中删除file3。

Checkout your branch from which PR was created. git checkout branch1 Check commit history git log It will provide you with following details commit <some id 1> (origin/branch1, branch1) Author: abc Date: Tue Nov 2 16:47:03 2021 +0530 commit <some id 2> (origin/branch1, branch1) Author: abc1 Date: Tue Nov 1 16:47:03 2021 +0530 Look for commit id for commit made before your changes and checkout file3 with that commit id git checkout <some id 2> C:\Code\project\file3.java Then do git commit git add file3.java git commit -m "Removing file3 from PR" git push Check your PR, file3 should be removed now.

其他回答

只需在GitHub web中拉请求,然后点击更多动作(…3点图标)文件>删除文件>提交到当前分支

例如,您希望从branch1为文件file1、file2和file3创建PR。 现在您想从PR中删除file3。

Checkout your branch from which PR was created. git checkout branch1 Check commit history git log It will provide you with following details commit <some id 1> (origin/branch1, branch1) Author: abc Date: Tue Nov 2 16:47:03 2021 +0530 commit <some id 2> (origin/branch1, branch1) Author: abc1 Date: Tue Nov 1 16:47:03 2021 +0530 Look for commit id for commit made before your changes and checkout file3 with that commit id git checkout <some id 2> C:\Code\project\file3.java Then do git commit git add file3.java git commit -m "Removing file3 from PR" git push Check your PR, file3 should be removed now.

对于那些更喜欢UI解决方案而不是git命令的人… 您可以从主分支(或您要合并到的任何分支)下载未修改的文件,然后将其与修改后的文件一起粘贴到您的本地文件夹,有效地将其替换为未修改的版本。然后提交更改并将其推送。

pull请求就是将一个分支合并到另一个分支的请求。

你的pull请求不“包含”任何东西,它只是一个标记说“请将这个分支合并到那个分支”。

PR在web UI中显示的变化集只是目标分支和你的特性分支之间的变化。要修改你的pull请求,你必须修改你的特征分支,可能需要用力推到特征分支。

在您的情况下,您可能需要修改提交。不确定您的确切情况,但一些交互式rebase和add -p的组合应该会帮您解决问题。

你可能想要修改提交,然后执行强制推送,这将用PR更新分支。

以下是我的建议:

关闭PR,这样在你做出更改之前,任何审查它的人都不会把它拉进来。 在你不想要的更改之前对提交进行软重置(如果这是最后一次提交,你可以使用git reset—Soft HEAD^,或者如果是不同的提交,你会想要用提交id替换'HEAD^') 丢弃(或撤消)您不打算更新的文件的任何更改 创建一个新的提交git commit -c ORIG_HEAD Force Push到你的分支 重新打开拉请求

现在您的分支已经更新,Pull Request将包含您的更改。

这里有一个Gits文档的链接,在撤消提交和重做下面有一个很好的例子。