Git:从拉取请求中排除已提交的文件

3

我有一个代码仓库,我已经将我的代码推送到其中。我现在意识到我正在推送 .idea/workspace.xml 这个我应该忽略的文件(里面包含很多无用的配置信息)。

现在它已经在我的远程仓库中了,我需要提交一个拉取请求。 这个问题文件能不能被排除在拉取请求之外呢?

1个回答

6

问题在于,如果你提交了删除 .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进行强制推送提交(这是不好的做法,但在您的情况下没有其他选择。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接