Добавляем директорию:
mkdir something
echo "something" > ./something/something.txt
Смотрим что изменилось:
git status
# On branch svntrunk
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# something/
nothing added to commit but untracked files present (use "git add" to track)
Добавляем под контроль:
git add .
git commit -a -m "add something"
Смотрим что изменилось:
# On branch svntrunk
nothing to commit (working directory clean)
Чудесно, папочка добавилась.
Теперь смотрим лог и попытаемся окотиться назад на один коммит: (по айдишнику - из параноидальных соображений)
git reset --hard 7ec3b79f9fea841db24eeb645ce322c475e79af9
И смотрим что изменилось:
# On branch svntrunk
nothing to commit (working directory clean)
Казалось бы, мы только что умертвили папочку с гиперважным файлом something.txt
Однако
ls -al | grep something
drwxr-xr-x 3 olegchir users 4096 Sep 5 08:15 something
Возникают вопросы:
1) Почему при жестком откате не удалилась директория с непустыми файлами?
2) и даже если директория по какой-то мистической причине _должна_ остаться, то почему всего лишь nothing to commit, почему оно не завопило «but untracked files present»?
git-1.7.6-1 из репов арча. Переустановил - та же фигня. Я негодую =)
UPD: Оказывается, оно не удалило директорию, но удалило в ней файл. Тогда понятно, почему nothing to commit, директория пустая, а гит индексирует по контенту. Но почему оно не убило директорию? Котэ продолжает негодовать.