我的 gitignore 文件如下所示:
# Ignore bundler config.
/.bundle
# Ignore all logfiles and tempfiles.
/log/*
!/log/.keep
/tmp
coverage/
public/system/
.DS_Store
.env
logfile
development.log
无论出于何种原因,我的提交和拉取请求中都会出现development.log 文件。现在我有一个开放的拉取请求,其中包含完整的development.log 文件。我该如何删除它?
我尝试过以下方法:
结束当前分支资源没有上游分支。要推送当前分支,请将远程设置为上游,请使用 git push --set-upstream origin 资源。我这样做,然后检查我的 PR,文件仍然在那里,因为显然它没有编辑。
我也尝试过
这里的问题是该文件存在于本地,并且应该存在,但我希望将其从 PR 中删除。
如何从拉取请求中删除文件但不在本地删除它?
首先从 git 索引中删除日志文件,同时使用
--cached
选项将其保留在磁盘上:
git rm --cached log/development.log
然后签入文件删除:
git commit -m 'remove development log'
如果您已经推送了该文件,只需删除该文件并提交删除的文件并推送到远程。
如果只提交而不推送到远程,请尝试
git reset HEAD~1
(数字1表示重置一次提交)删除文件并推送到远程。
如果您想保留更改,只需将它们移动到不同的分支即可:
在 IDE 中重命名文件,提交并推送更改而不暂存重命名的文件,然后签出正确的分支,将其重命名回原来的状态,暂存、提交并推送到正确的分支。
git rm --cached <filepath>
提交并推送更改,而不将已删除的文件暂存回来,移动到正确的分支,然后暂存、提交并推送文件。