我使用此命令取消跟踪文件:
git rm --cached source/html/weekend-message.html
这是Stack Overflow上this answer中描述的方法。在那之后,我的git状态看起来像这样:
我不知道现在要做什么(我想要一个干净的状态),所以我继续寻找并找到了this answer并执行了这个命令:
git reset HEAD source/html/weekend-message.html
现在我的git状态如下:
我很困惑。我只是想解开这个文件并在此之后有一个空的git状态。我该怎么做?
更新:执行以下VonC答案中建议的命令后:
git rm --cached source/html/weekend-message.html
git commit -m "delete source/html/weekend-message.html"
我的git状态如下:
Git状态仍然不干净:(
答案 0 :(得分:3)
你应该:
由于您已重置该文件(撤消索引中记录的删除),您可以再试一次:
git rm --cached source/html/weekend-message.html
git commit -m "delete source/html/weekend-message.html"
然后:
.gitignore
文件中(您将看到它立即从git status
输出中消失).gitignore
修改(第二次提交)注意:如下面评论中所建议的那样,您只需进行一次提交:
git rm --cached source/html/weekend-message.html
.gitignore
文件(您将看到它立即从git status
输出中消失),git add .gitignore
。注意:现在您可以获得正确的git状态,准备提交: git commit -m "delete and ignore source/html/weekend-message.html"
请注意,要本地忽略文件(而不是在回购历史中记录删除),您可以使用:
git update-index --skip-worktree -- yourFile
不需要提交,文件仍保留在历史记录中。
点击“Git - Difference Between 'assume-unchanged' and 'skip-worktree'”了解更多信息。