如何从拉取请求/提交中删除文件?

问题描述 投票:0回答:3

我的 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 文件。我该如何删除它?

我尝试过以下方法:

  1. git重置HEAD^app/log/development.log
  2. git commit --amend --no-edit
  3. git 推送

结束当前分支资源没有上游分支。要推送当前分支,请将远程设置为上游,请使用 git push --set-upstream origin 资源。我这样做,然后检查我的 PR,文件仍然在那里,因为显然它没有编辑。

我也尝试过

  1. git log,找到该文件的提交
  2. git重置——软提交
  3. git 推送

这里的问题是该文件存在于本地,并且应该存在,但我希望将其从 PR 中删除。

如何从拉取请求中删除文件但不在本地删除它?

git
3个回答
7
投票

首先从 git 索引中删除日志文件,同时使用

--cached
选项将其保留在磁盘上:

git rm --cached log/development.log

然后签入文件删除:

git commit -m 'remove development log'

0
投票

如果您已经推送了该文件,只需删除该文件并提交删除的文件并推送到远程。

如果只提交而不推送到远程,请尝试

git reset HEAD~1
(数字1表示重置一次提交)删除文件并推送到远程。


0
投票

如果您想保留更改,只需将它们移动到不同的分支即可:

  1. 在 IDE 中重命名文件,提交并推送更改而不暂存重命名的文件,然后签出正确的分支,将其重命名回原来的状态,暂存、提交并推送到正确的分支。

  2. git rm --cached <filepath>
    提交并推送更改,而不将已删除的文件暂存回来,移动到正确的分支,然后暂存、提交并推送文件。

© www.soinside.com 2019 - 2024. All rights reserved.