强制git更新.gitignore

31 git gitignore

我有一个.gitignore文件,它忽略了一些文件.我更新了.gitignore文件(删除了一些文件名并添加了一些文件名).这没有反映出来git status.如何强制git更新这些更改,以便跟踪之前未跟踪的文件,反之亦然.

我试过这个问题,仍然没有跟踪我的所有文件(根据我的更新.gitignore).(简单来说,一旦.gitignore更新或删除,我怎么能强制git撤回文件).

Shr*_*n40 77

你必须清除第cache一个.

  • git rm -r --cached .
  • git rm -r --cached <file_name.ext>
  • git add .

  • 我已经明确提到(并链接)这对我的问题没有帮助 (3认同)
  • 要停止跟踪当前跟踪的文件,请使用`git rm --cached`. (2认同)
  • 请注意,这适用于添加曾经被忽略的文件以及忽略曾经被跟踪的文件。 (2认同)

Naj*_*thi 8

有用

//首先提交任何未完成的代码更改,然后运行以下命令:

git rm -r --cached .
Run Code Online (Sandbox Code Playgroud)

//这将从索引(暂存区)中删除任何更改的文件,然后运行:

git add .
Run Code Online (Sandbox Code Playgroud)

//犯罪

git commit -m "Atualizando .gitignore para..."
Run Code Online (Sandbox Code Playgroud)

  • 这已经在接受的答案中 (2认同)

Raj*_*tam 6

您可以通过删除出现此问题的特定文件的缓存来解决此问题。当您提交了一些特定文件一次,然后稍后将它们添加到.gitignore中时,就会出现您提到的问题。

git rm -r --cached <your_file.extension>
git commit -am "Suitable Message"
Run Code Online (Sandbox Code Playgroud)

上面的 @sharvan40 提出了相同的解决方案,但您不需要删除所有文件的缓存。它为您的所有文件创建一个新的提交。


Saa*_*ran 5

如果要添加所有文件,请从.gitignore文件而不是.gitignore文件及其中删除所有文件名commit,然后尝试

git config --global core.excludesfile ~/.gitignore_global

git会根据操作系统忽略某些文件(例如Windows中的.dll)。有关更多信息

现在

git add .

git status

git commit -m "your message"
Run Code Online (Sandbox Code Playgroud)

要么

您可以尝试一个简单的技巧,它可能会或可能不会起作用。删除文件中的所有文件名.gitignore并添加此行!*.*,然后按addcommit

更新

很简单,我将举例说明。假设您有一个build已经由git跟踪的文件夹。现在,您决定不跟踪此文件夹。

  1. 将此文件夹(build)添加到.gitignore
  2. 删除资料build
  3. 提交您的更改

从现在开始,git将不会跟踪build文件夹。

  • “从.gitignore文件中删除所有文件名,而不是.gitignore文件并提交”,这是什么意思? (7认同)