如何从 Git 拉取请求中删除文件

How to remove a file from Git Pull Request

我打开了一个拉取请求,其中有一些 project.lock.json 文件,在将我的分支合并到主分支时我不想合并这些文件。有没有办法从我的 Pull Request 中删除那些 project.lock.json 文件?

如果他们已经提交,我想不出简单的方法。可能最简单的方法,也是一种变通方法,是将它们移出项目文件夹,从您的 git 工作副本中删除它们,重新提交,这样您的分支中就没有 JSON 文件了.然后,当您合并时,您的 JSON 文件将无法通过。

您需要删除文件、提交更改并将下一次推送到您的分支。

如果你想把文件留在你的分支,但不想把它合并到主分支,你可以在一次提交中删除它,然后在另一次提交中重新添加。 Git 允许您使用 git-cherry-pick 手动接受某些提交。您可以接受每个提交,但您再次添加此文件的提交除外。

我认为您可以简单地用原始文件覆盖您的 project.lock.json 并提交。

如果有更好的方法,请告诉我。这是我找到的解决方法。

列出远程分支

git branch -va

查看 PR 分支

git checkout origin pr_branch

用other_branch的文件覆盖pr_branch的文件

git checkout other_branch -- ./path/to/file

提交更改

git commit -m "overwrite with other_branch's"

推送您的更改

git push origin pr_branch

您可以检出 master 并拉取,然后根据 master 重新设置您的分支 和 rebase master 以确保你只从你的 PR 中删除它,而不是从 repo 中删除它,所以当你合并到 master 时,它不会删除那些文件,而只会从你的 PR 中删除。

git checkout master
git pull
git checkout <your-branch>
git rebase master
git push

首先,找出影响该文件的特定提交。然后下面的两个命令应该将提交还原到该文件。

git revert <commit>
git push origin <branch name>
  • 从原始存储库复制文件。并覆盖您分支存储库中的文件。
  • 提交。
  • 进入pull request的"Files Changed"页面,会有刷新的选项。或手动刷新页面。