2016-07-19 6 views
1

Я добавил шаблон, чтобы игнорировать файлы рекурсивно в exclude файле внутри .info в каталоге .git.git error- не соответствует ни одному файлу, известному git?

patter : httpdocs/**/bak_*.* 

Если я зафиксирую из httpdocs, он работает, и из измененного каталога он дает ошибку.

git commit -m "formatting js" httpdocs/* [working] 

git commit -m "formatting js" httpdocs/dir1/dir2/* [giving below error] 

ошибка: pathspec 'httpdocs/dir1/dir2/bak_admin.abc.php' не соответствует любой файл (ы), известный мерзавец.

В принципе, я хочу знать, почему это происходит.

ответ

2

Код шаблона * расширился оболочкой (не по git).
Это означает, что git commit -m "formatting js" httpdocs/* переводится на

git commit -m "formatting js" httpdocs/fileorDir1 
git commit -m "formatting js" httpdocs/fileorDir2 
git commit -m "formatting js" httpdocs/fileorDir3 

Если все эти файлы уже были отслежены, мерзавец совершает работу. Если это не так, появляется сообщение об ошибке, которое вы видели.

В случае git commit -m "formatting js" httpdocs/dir1/dir2/*, что переводится как:

git commit -m "formatting js" httpdocs/dir1/dir2/fileirDir1 
git commit -m "formatting js" httpdocs/dir1/dir2/fileirDir2 
git commit -m "formatting js" httpdocs/dir1/dir2/fileirDir3 

Это будет включать в себя файлы, которые явно игнорировали (не отслеживается на всех), в том числе bak_admin.abc.php.
Даже если .gitignore правильно установлена, оболочка (не мерзавец) будет проходить bak_admin.abc.php команде git commit, в результате чего

error: pathspec 'httpdocs/dir1/dir2/bak_admin.abc.php' did not match any file(s) known to git. 

Решение: не использовать '*'

git commit -m "formatting js" httpdocs/ 
git commit -m "formatting js" httpdocs/dir1/dir2/ 
+0

Правильно, но если '.gitignore' был настроен правильно, git-commit должен просто игнорировать эти пути к файлам. – Vidur

+1

@Vidur Нет, это не будет игнорировать этот файл, потому что указанный файл будет передан git для передачи явно оболочкой – VonC

+0

К сожалению, я ошибся. Он жалуется на это. – Vidur