在Git存储库中运行`git add .git`会发生什么?

时间:2011-07-27 05:24:41

标签: git git-add

虽然它似乎什么都不做,但没有给出任何警告或错误信息。有什么想法吗?

2 个答案:

答案 0 :(得分:20)

来自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,但是想要尝试{{1我以前没用过的--git-dir。毕竟我正在试验。这也让我可以证明我可以添加git元数据文件夹,如下所示)

--work-tree

所以是的,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设置),就我所见。

答案 1 :(得分:18)

简答:没什么。

答案很长:

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$