我正在进行的一个项目中,我想使用:
git add . -A
我想将一些文件添加到Git的暂存区(stage)中。问题在于,Git认为这些文件与上一次提交时没有变化,因此它们被忽略了。但是,我自己已经更改了这个文件,但是Git仍然认为这个文件没有变化。
我该如何“强制”将这个单独的文件添加到我的代码库(repository)中?
请检查您的.gitignore文件,其中必须存在一些模式匹配该文件,从而将文件排除在被暂存之外。或者您可以使用git add . -f
来强制添加这些文件。
.gitignore
只会影响未被追踪的文件——也就是它们还没被纳入版本库时。一旦一个文件已经被纳入版本库,.gitignore
就不再适用于它了。 - Edward Thomson看起来该文件设置了assume-unchanged
位。设置了该位后,Git将不再查找该文件的更改。通过输入以下命令取消设置:
git update-index --no-assume-unchanged <file>
在此之后,git status
和 git add
应该能够检测到已更改的文件。
git add -A
不是一个好主意。 使用该命令会使您失去在提交更改之前审查自己更改的机会。 我的经验是,按文件进行分阶段处理,并至少匆忙地查看所有差异,可以避免许多错误提交。 例如提交调试代码,将两个应该成为两个不同提交的更改合并为一个提交,提交不应公开的本地更改等。git add -A .
可能很方便易用,但会导致质量显着降低的提交。 - cmaster - reinstate monica