Git:从拉取请求中排除已提交的文件
Git: exclude committed file from pull request
我有一个仓库,我已将我的东西推送到该仓库。我已经意识到我正在推动 .idea/workspace.xml
,我应该忽略它(很多无用的配置内容)。
现在它在我的远程仓库上,我需要做一个拉取请求。
是否可以将违规文件排除在拉取请求之外?
问题是您不能通过删除 .idea/workspace.xml
的提交发送拉取请求,因为是否合并该拉取请求取决于存储库所有者。
因此您需要修改添加该文件的同一个提交。
要做到这一点,请使用 git rebase --interactive
获取就在您错误提交之前的提交的 SHA 例如。 ba0202e
。然后执行以下操作:
$ git rebase --interactive ba0202e
然后它将打开一个编辑器,其中将列出所有提交。
只需找到您的错误提交,并将 pick
替换为 edit
。
保存文件并关闭它。
现在删除文件.idea/workspace.xml
$ git rm --cached .idea/workspace.xml
它会将其从 git 中删除,但不会从您的本地系统中删除。
然后修改commit:
$ git commit --amend
$ git rebase --continue
现在您必须使用选项 -f
强制推送提交(这是不好的做法,但在您的情况下没有任何其他选项。)
我有一个仓库,我已将我的东西推送到该仓库。我已经意识到我正在推动 .idea/workspace.xml
,我应该忽略它(很多无用的配置内容)。
现在它在我的远程仓库上,我需要做一个拉取请求。 是否可以将违规文件排除在拉取请求之外?
问题是您不能通过删除 .idea/workspace.xml
的提交发送拉取请求,因为是否合并该拉取请求取决于存储库所有者。
因此您需要修改添加该文件的同一个提交。
要做到这一点,请使用 git rebase --interactive
获取就在您错误提交之前的提交的 SHA 例如。 ba0202e
。然后执行以下操作:
$ git rebase --interactive ba0202e
然后它将打开一个编辑器,其中将列出所有提交。
只需找到您的错误提交,并将 pick
替换为 edit
。
保存文件并关闭它。
现在删除文件.idea/workspace.xml
$ git rm --cached .idea/workspace.xml
它会将其从 git 中删除,但不会从您的本地系统中删除。
然后修改commit:
$ git commit --amend
$ git rebase --continue
现在您必须使用选项 -f
强制推送提交(这是不好的做法,但在您的情况下没有任何其他选项。)