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 *.txta expansão do curinga é feita pelo shell, entãogité realmente chamado comgit add file1.txt file2.txt(o que significa quegitapenas recebe os nomes dos arquivos e os adiciona). A única ressalva aqui é que, se houver arquivos não correspondentes a*.txtgit, ele será executado comogit add *.txt, o que, é claro, acionará a varredura de subdiretóriogits - Com
git add '*.txt'a expansão de curinga é feita porgit, o que sempre implica também uma varredura de subdiretório.