私が git で見つけたこの癖を理解するのを手伝ってくれる人はいますか?
この癖を再現する方法は次のとおりです。
$ mkdir git-test && cd git-test
$ git init
Initialized empty Git repository in /tmp/git-test/.git/
$ echo hello > world
$ git add world
$ git commit -m'first commit'
[master (root-commit) 5f68103] first commit
1 file changed, 1 insertion(+)
create mode 100644 world
ここまでは大丈夫です。それでは、分岐しましょう:
$ git checkout -b a_branch
$ mkdir a_dir
$ echo foo > a_dir/bar
$ git add a_dir/bar
$ git commit -m message
[a_branch (root-commit) 2fbef71] message
1 file changed, 1 insertion(+)
create mode 100644 a_dir/bar
OK、ここに癖があります!
$ cd a_dir
$ pwd
/tmp/git-test/a_dir
$ git checkout master
Switched to branch 'master'
$ pwd
/tmp/git-test/a_dir
なんと!? このパスはこのブランチには存在しません!
$ ls
total 0
動作ls
するようです...
$ cd ..
$ ls
world
ディレクトリ `a_dir' は魔法のように消えてしまいました!
これはどのように可能ですか?