Что происходит, когда вы запускаете `git add .git` в репозитории Git? - PullRequest
23 голосов
/ 27 июля 2011

Хотя казалось, что он ничего не делает, он не выдал ни предупреждения, ни сообщения об ошибке. Есть идеи?

Ответы [ 2 ]

20 голосов
/ 27 июля 2011

Комментарий из источника Git:

/*
 * Read a directory tree. We currently ignore anything but
 * directories, regular files and symlinks. That's because git
 * doesn't handle them at all yet. Maybe that will change some
 * day.
 *
 * Also, we ignore the name ".git" (even if it is not a directory).
 * That likely will not change.
 */

Поэкспериментируйте, что произойдет, если я создам файл .git и попытаюсь добавить его: (В Windows я не могу создать файл .git, когда папка .git уже существует. Я также мог создать .git в другом месте в подкаталоге, но хотел попробовать --git-dir и --work-tree, которые я раньше не использовал. После всего, что я экспериментирую. Это также позволяет мне показать, что я могу добавить папку метаданных git, как показано ниже)

git --git-dir="c:/test" init
touch blah
git --git-dir="c:/test" --work-tree="." add .
git --git-dir="c:/test" --work-tree="." status ( shows blah added)
touch .git
git --git-dir="c:/test" --work-tree="." add .git ( no output as usual)
git --git-dir="c:/test" --work-tree="." status ( only blah shown)

Так что да, .git - будь то каталог или файл, игнорируется git.

А если я сделаю что-то вроде ниже:

git --git-dir="c:/test" --work-tree="c:/test" add c:/test

все метафайлы добавляются.

Итак, насколько я вижу, игнорируется только .git, а не папка метаданных git (которую вы установили с помощью --git-dir).

18 голосов
/ 27 июля 2011

Короткий ответ: ничего.

Длинный ответ:

laptop:Projects ctcherry$ mkdir test
laptop:Projects ctcherry$ cd test
laptop:test ctcherry$ git init .
Initialized empty Git repository in /Users/ctcherry/Projects/test/.git/
laptop:test ctcherry$ git add .git
laptop:test ctcherry$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)
laptop:test ctcherry$ 
...