1

我有一个devlog文件夹,我在其中写下我喜欢用git status. 排除这些文件后,我通常可以git add .; git commit,但显然其中的内容devlog禁止这样做。我喜欢有一个 git 钩子,它可以在提交之前取消整个路径及其内容。

我试过了:

git rm --cached devlog/*

但显然,它希望 的所有内容都已./devlog上演(包括那些被 忽略的内容.gitignore),因此会引发错误:

git rm --cached devlog/*
#> fatal: pathspec 'devlog/check.log' did not match any files

哪里devlog/check.log被忽略了,根本没有上演。

4

2 回答 2

1

这是一个似乎有效的解决方案。只需添加.git/hooks/pre-commit以下内容:

git reset -- devlog/*
于 2021-04-09T07:39:30.710 回答
0

你可以:

  • 先强制添加check.log
  • 那么git rm --cached一切

由于check.log被忽略(在 中列出.gitignore),它会在git rm --cached.

所以:

    git add --force devlog/check.log
    git rm --cached devlog/*
于 2021-04-09T07:22:49.483 回答