我有一些我想在本地更改的配置文件,但不会冒意外提交这些更改的风险。它们也不能添加到 gitignore 中,因为需要对整个项目进行跟踪。当我修改这些文件以满足我的环境需要时,我的git status
外观如下:
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: config1.cfg
modified: config2.cfg
Untracked files:
(use "git add <file>..." to include in what will be committed)
whatever.html
somethingElse.js
然后我运行:
git rm --cached config1.cfg config2.cfg
git status
看起来像这样:
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: config1.cfg
deleted: config2.cfg
Untracked files:
(use "git add <file>..." to include in what will be committed)
config1.cfg
config2.cfg
whatever.html
somethingElse.js
可以预见的是,跑步git reset --HEAD config1.cfg config2.cfg
会将他们送回集结区。但是,即使该分期是为了删除,某些东西可能未被跟踪但仍然在同一时间上演,这有点没有意义。而且 - 我没有删除文件,但如果我现在提交,那么它们将被删除。
我意识到这可能是涂抹和清洁过滤器的更好用例,但是是否有可能达到以前跟踪的文件未被跟踪并且就好像从未被跟踪过的状态?如果没有,是否有充分的理由不可能?
编辑以澄清现在我对情况的了解更好一点:我正在尝试创建的场景是在我工作时在我的本地未跟踪文件的场景,而不会影响它们在远程的跟踪状态。