Кропаю тут небольшую программку, попутно решил разобраться таки с git-ом. Так что дальше могут не читать те, кто не знает что это и для чего это надо. ;)
В общем сделал на одной машине (A) репозитарий:
cd prog
git init
Добавил файлы, поредактировал, потестил, добавил в репозитарий:
git add prog.py
Ну и закомитил:
git commit -a
На другой машине (B) сделал клон этого репа:
git clone bla-bla-bla/prog
cd prog
Все хорошо. Теперь могу тут делать что-то. Поправил файлы, сделал папку data и добавил туда файлы. Ну и добавляю все это в реп:
git add data
git commit -m "напихал еще файлов"
Теперь выталкиваю это все на машину A:
git push
На машине A смотрю:
git log
и вижу, что мой последний коммит тут есть. Все хорошо. Но! Нет самой папки data и ее содержимого. :( Если сделать:
git checkout
То он пишет, что удаляет эту папку вместе с файлами и в репе появляется коммит с удалением.
Вопрос: или я чего то не понимаю? Как мне получить на машине A нормальные актуальные данны, в git-е то они есть! В общем объясните дураку, что я делаю не так. :)
P.S. Доки по git-у читал, статьи - тоже. Не помогло. :( Все равно до конца не понимаю что к чему.
репозиторий git — это информация, хранящаяся в каталоге ".git".
ОтветитьУдалитьто, что вы видите по команде ls — это ваш working tree, клон репозитория.
посмотрите git-status. вы увидите, что ваши «изменения» состоят в удалении каталога data.
закоммитьте другие изменения (если они были) и откатите это псевдо-удаление: например, с помощью git-reset --hard (кошерность именно такой операции не гарантирую — я не спец по git-у).
Да, по поводу .git и working tree я понимаю. Интересно было именно как это правильно делается. Вот этого я как-то и не догоняю. :) Но за совет спасибо, будем дальше читать/думать.
ОтветитьУдалить