Existe uma diferença sutil entre o shell ou o git lidar com o padrão. git
também considera subdiretórios, o shell não. Então, no seu caso, executando
git add *.txt
enquanto o diretório atual é sua "pasta atual", permite que o shell faça a expansão de curingas (e, portanto, apenas adiciona arquivos correspondentes no diretório atual).
Para elaborar
- Com
git add *.txt
a expansão do curinga é feita pelo shell, entãogit
é realmente chamado comgit add file1.txt file2.txt
(o que significa quegit
apenas recebe os nomes dos arquivos e os adiciona). A única ressalva aqui é que, se houver arquivos não correspondentes a*.txt
git
, ele será executado comogit add *.txt
, o que, é claro, acionará a varredura de subdiretóriogit
s - Com
git add '*.txt'
a expansão de curinga é feita porgit
, o que sempre implica também uma varredura de subdiretório.