编辑后的答案
你做了一个git rm --cached -r config.php
,但没有提交那个改变。
Next you did git reset config.php
,清除了git rm
你之前做的效果。所以你现在回到了你开始的地方。
然后,您添加config.php
到.gitignore
. 这不会有任何影响,因为config.php
现在仍在跟踪。
最后,您执行了 a git update-index --assume-unchanged config.php
,因此如果您执行git status
/ ,则任何更改都不会在本地可见git diff
。这些步骤给人一种错觉,当它们没有时,它们工作得很好git rm
。.gitignore
相反,这样做(-r
标志是多余的,这不是目录)
git rm --cached config.php
echo config.php >> .gitignore && git add .gitignore
git commit -m "removing config.php"
原始答案
但是:如果我存储工作目录以切换分支,那么 config.php 将从本地存储库中恢复。
好吧,您刚刚从当前分支中删除了 config.php(让我们调用它master
),但另一个分支other
仍在跟踪它。所以这就是你看到它的原因。与它无关git stash
。
您可能应该将分支合并master
到other
以将提交带入分支other
。