githook来批量取消对路径中所有文件的暂存



我有一个devlog文件夹,在那里我写下我的想法/示例代码,我希望这些代码在git status中可见。在排除这些文件的情况下,我通常只能使用git add .; git commit,但显然devlog中的内容禁止这样做。我喜欢有一个githook,它可以在提交之前取消对整个路径及其内容的描述。

我试过了:

git rm --cached devlog/*

但显然,它希望./devlog的所有内容都已经暂存(包括.gitignore忽略的内容(,因此抛出了一个错误:

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

其中devlog/check.log被忽略并且根本没有被暂存。

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

git reset -- devlog/*

您可以:

  • 先强制添加CCD_ 9
  • 然后git rm --cached所有

由于check.log被忽略(列在.gitignore中(,它将在git rm --cached之后自动被忽略(再次(。

因此:

git add --force devlog/check.log
git rm --cached devlog/*

相关内容

  • 没有找到相关文章

最新更新