【问题标题】:Remove file from git commits only仅从 git 提交中删除文件
【发布时间】:2021-12-31 18:41:39
【问题描述】:

我的 git 提交中有一个名为 test.config.php 的文件,我想从我的 git 存储库中删除该文件,所以我使用了

git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch path_to_file" HEAD" HEAD

但它从项目和 git 历史记录中删除了文件,我设法取回了文件,但我只需要从 git 提交中删除文件,而不是从所有项目中删除文件

【问题讨论】:

  • 你想从提交中删除文件而不是项目是什么意思?您可以在其他地方复制该文件,将其从提交中删除,然后将其复制回项目文件夹吗?
  • 提交项目和历史。如果文件在提交中,则它在 Git 和历史记录中。如果不是,那就不是。仅此而已。
  • 我会试一试的,伙计们

标签: git github version-control


【解决方案1】:

您可以使用git reset --soft HEAD^ 这将重置提交,但会将您的更改保留在您的工作和索引树中,这意味着您会发现所有更改都已暂存并准备好提交,还需要注意 HEAD^ 是HEAD^1 的快捷方式,这意味着您将回到当前提交之前的提交状态。

您还可以使用git reset --mixed HEAD^,它将从日志中删除提交,并将您的更改从索引树中删除,这意味着您只会在工作树中找到您的更改,而不是暂存。

【讨论】:

    猜你喜欢
    • 2012-09-10
    • 2017-11-27
    • 2021-02-24
    • 2018-04-04
    • 2016-04-17
    • 2014-06-27
    • 1970-01-01
    • 2017-09-18
    • 2021-08-02
    相关资源
    最近更新 更多