ti-enxame.com

Rastreie e pare de rastrear arquivos no git

Eu tenho uma subpasta profunda chamada objects com arquivos chamados _*.object_ que não quero que sejam rastreados pelo git (Windows).

No .gitignore, tentei várias combinações (por exemplo, _**/objects/*_ ou _**/objects/*_ etc.) sem sucesso: sempre, quando eu faço _git status_, vejo:

_# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       foo/src/objects/a.object
#       foo/src/objects/b.object
_

Somente quando adiciono _*.object_ ao .gitignore os arquivos desaparecem da lista de arquivos não rastreados. O que há de errado com meus curingas?

Além disso, quando é necessário _git update-index_ e quando devo fazer _git rm --cached myfile_?

Existe um recurso curinga para rm como _git rm --cached **/foo/*.Zip_?

ATUALIZAÇÃO: Da mesma forma, adicionar a linha _.gitignore_ a _.gitignore_ (nem sempre é desejável, mas ainda assim) não tem efeito. Isso é estranho, porque os arquivos podem ter sido rastreados no passado?

42
Marc

OK, embora os curingas não funcionem (aparentemente no Windows), é possível remover uma pasta inteira com:

git rm -r --cached "path/to/foo/"

Entendo que - em cache apenas nos estágios - você precisa git commit para removê-los do repositório.

87
Marc