我在跟踪文件时遇到了一个奇怪的问题。
我有一个跟踪文件index.css
。然后我将其添加到.gitignore
。然后我运行以下命令并获得输出:
$ git rm --cached build/development/css/index.css
rm 'build/development/css/index.css'
运行git status
会提供以下内容:
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: build/development/css/index.css
当尝试提交更改时,我收到以下错误:
Error:On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
during executing git commit --only -F C:\Users\dtv\AppData\Local\Temp\git-commit-msg-7154374096157077481.txt -- build/development/css/index.css
如果我尝试将更改提交到index.css
以及其他更改,则提交会毫无错误地进行。但仍会检测到对文件的更改。我做错了什么?
答案 0 :(得分:1)
问题是--only
的{{1}}选项。来自git commit
联机帮助页:
仅从命令行中指定的路径进行提交, 无视到目前为止上演的任何内容。
尝试提交该文件,忽略之前的git-commit
命令。
答案 1 :(得分:1)
git rm --cached filename
命令,它只会在那个时间忽略。如果您在 .gitignore 中添加该文件,git将永久忽略(取消)该文件。在向 .gitignore 添加文件名或路径后,我们必须执行以下命令以从下次开始取消跟踪这些文件
首先提交任何未完成的代码更改,然后运行以下命令
git rm -r --cached .
- &gt;这将从索引(暂存区域)中删除所有已更改的文件
git add .
git commit -m ".gitignore is now working"
- &gt;提交更改
答案 2 :(得分:1)
你试过了吗?
git update-index --assume-unchanged path_to_file
这将在索引中标记文件,git将停止跟踪文件以进行任何修改。结合在 .gitignore 中添加此文件,它将在使用时停止将其显示为已修改
git status
您还可以查看update-index
的文档