What happens when you run `git add .git` in a Git repository?

While it seemed to do nothing, it gave no warning or error message. Any ideas?

  • git push only one file to Heroku
  • heroku-like git setup?
  • How do I remove git's MERGE_MSG?
  • git subtree add does not accept pathspec
  • Git submodule pull request work flow
  • Phabricator Key Words in Git Commit Messages
  • Best practice git merging two branches with many changes
  • git rebase --continue, but modify commit message to document changes during conflict resolution?
  • git stash restores ignored files
  • How long does git keep out-of-branch commits?
  • trying to execute git command using python script
  • git pull from wrong remote branch
  • 2 Solutions collect form web for “What happens when you run `git add .git` in a Git repository?”

    Comment from Git source:

     * 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.

    Experiment to see what happend if I create a file .git and try to add it:
    (on Windows I cannot create a file .git when there is already a .git folder. I also could have created a .git elsewhere in a sub directory, but wanted to try out --git-dir and --work-tree which I haven’t used before. After all I am experimenting. This also allows me to show that I can add the git metadata folder as seen below)

    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)

    So yeah, .git – be it directory or file, is ignored by git.

    And if I do something like below:

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

    all the meta files get added.

    So again, it is only .git that is ignored not the git metadata folder (that you set via --git-dir) as far as I can see.

    Short answer: Nothing.

    Long answer:

    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$ 
    Git Baby is a git and github fan, let's start git clone.