我有一个代码仓库,我已经将我的代码推送到其中。我现在意识到我正在推送 .idea/workspace.xml
这个我应该忽略的文件(里面包含很多无用的配置信息)。
现在它已经在我的远程仓库中了,我需要提交一个拉取请求。 这个问题文件能不能被排除在拉取请求之外呢?
我有一个代码仓库,我已经将我的代码推送到其中。我现在意识到我正在推送 .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中删除它,但不会从您的本地系统中删除。
然后修改提交:
$ git commit --amend
$ git rebase --continue
-f
进行强制推送提交(这是不好的做法,但在您的情况下没有其他选择。)