我有一个.gitignore
文件,它忽略了一些文件。我更新了.gitignore
文件(删除了一些文件名并添加了一些文件名)。这没有反映在git status
。如何强制git更新这些更改,以便跟踪之前未跟踪的文件,反之亦然。
我试过这个question,仍然没有跟踪我的所有文件(根据我更新的.gitignore
)。 (简单来说,一旦.gitignore
被更新或删除,我怎么能强制git收回文件)。
如果你想添加所有文件,删除.gitignore
文件中的所有文件名,而不是.gitignore
文件和commit
它,然后尝试
git config --global core.excludesfile ~/.gitignore_global
git会忽略某些文件,具体取决于操作系统(如Windows中的.dll)。更多information。
现在
git add .
git status
git commit -m "your message"
要么
你可以尝试一个简单的黑客,它可能会或可能不会工作。从.gitignore
文件中删除所有文件名,并添加此行!*.*
,然后添加add
和commit
。
UPDATE
很简单,我将用一个例子来解释。假设您有一个已经由git添加和跟踪的build
文件夹。现在您决定不跟踪此文件夹。
build
)添加到.gitignore
build
文件夹从现在开始,git将不会跟踪build
文件夹。
你必须先清除现有的git cache
。
git rm -r --cached .
清除现有缓存后,添加/分级当前目录中的所有文件并提交
git add .
git commit -m "Suitable Message"
您可以通过删除遇到此问题的特定文件的缓存来解决此问题。您提到的问题发生在您提交一些特定文件一次然后在.gitignore中添加它们之后。
git rm -r --cached <your_file.extension>
git commit -am "Suitable Message"
上面的@ sharvan40提出了相同的解决方案,但您不需要删除所有文件的缓存。它为您的所有文件创建一个新的提交。
假设您当前的工作目录为空。
您可以使用git ls-files
查看git当前正在跟踪的文件。如果您有很多文件,可以使用git ls-files | grep hello.txt
查找git是否正在跟踪该特定文件。
如果它正在跟踪它,那么使用git rm hello.txt
来解决它(正如蒂姆在他的comment中提到的那样)。也许首先提交未跟踪状态,然后在下次提交时将其添加到.gitignore
中。在尝试忽略并删除相同的提交时,我在过去看到过一些时髦的行为。