Git将“未更改”的文件添加到舞台上

12

我正在进行的一个项目中,我想使用:

git add . -A

我想将一些文件添加到Git的暂存区(stage)中。问题在于,Git认为这些文件与上一次提交时没有变化,因此它们被忽略了。但是,我自己已经更改了这个文件,但是Git仍然认为这个文件没有变化。

我该如何“强制”将这个单独的文件添加到我的代码库(repository)中?


有没有可能这个文件被Git忽略了?看看是否存在.gitignore文件,并且其中是否有这个文件的条目。 - Sruti
不,这个文件类型没有被列入我的.gitignore。 - user2744374
有一个旧的SO问题:https://dev59.com/7Wkw5IYBdhLWcg3ws8tj。你试过这些吗? - Sruti
不,我认为它不会这样做。因为Git提交是内容的哈希值,如果当前更改的哈希值与头部的哈希值相同,它将认为没有更改。 - Sruti
1
附注:通常使用 git add -A 不是一个好主意。 使用该命令会使您失去在提交更改之前审查自己更改的机会。 我的经验是,按文件进行分阶段处理,并至少匆忙地查看所有差异,可以避免许多错误提交。 例如提交调试代码,将两个应该成为两个不同提交的更改合并为一个提交,提交不应公开的本地更改等。 git add -A . 可能很方便易用,但会导致质量显着降低的提交。 - cmaster - reinstate monica
显示剩余3条评论
2个回答

5

请检查您的.gitignore文件,其中必须存在一些模式匹配该文件,从而将文件排除在被暂存之外。或者您可以使用git add . -f来强制添加这些文件。


不,.gitignore 只会影响未被追踪的文件——也就是它们还没被纳入版本库时。一旦一个文件已经被纳入版本库,.gitignore 就不再适用于它了。 - Edward Thomson

4

看起来该文件设置了assume-unchanged位。设置了该位后,Git将不再查找该文件的更改。通过输入以下命令取消设置:

git update-index --no-assume-unchanged <file>

在此之后,git statusgit add 应该能够检测到已更改的文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接