пʼятницю, 10 вересня 2010 р.

Краткий справочник по GIT для мигрирующих с SVN

Когда привыкаешь пользоваться чем-то одним, то бывает сложно сразу переключиться на новый продукт, особенно, если всё полностью иначе. Попробую привести краткий справочник аналогий команд GIT и SVN.




Состояние локального проекта осталось без изменений svn stasus и git status


Чтобы откатить локальные модификации файла вместо svn revert /path/to/file будет git checkout -- /path/to/file

А вот в процедуре принятия и отправки изменений больше различий.
В GIT есть процедура, которой нет в SVN. Дело в том, что GIT использует локально почти такой же репозиторий, как и удалённо и привычный commit не уходит на сервер, а применяется локально. Поэтому без аналогий: git commit -m "commit description" Перед этим, однако, нужно определить с помощью status какие файлы войдут в коммит и добавить их при помощи git add. Или воспользоваться параметром -a к коммиту (git commit -am "commit description") для отправки всех файлов.


Обновление: svn update и git pull

Отправка: svn commit и git push

Ещё пара слов о процессе отправки/получения изменений:
При работе с SVN принят такой процесс:
  1. svn update // акуальное состояние проекта
  2. //  внесение изменений в код
  3. svn update // для объединения удалённых изменений и решения конфликтов
  4. svn commit


при работе с GIT следует придерживаться следующей последовательности:
  1. git pull // актуальное состояние проекта
  2. // внесение изменений в код
  3. git commit // локальный коммит в репозиторий
  4. git pull // для объединения изменений и решения конфликтов
  5. git push

так как это «краткий справочник» всё таки, то приведу ещё одну полезную аналогию:

экспорт дерева проекта из репозитория бывший svn export будет звучать как git checkout-index -a -f --prefix=/path/to/destination/
тут важно не забыть слеш в конце, иначе префикс будет добавляться как есть и файл index.php превратится в /path/to/destinationindex.php :)
-a — как обычно для включения всех файлов
-f — классика: force

UPD git archive --format zip --output /full/path master

Немає коментарів:

Дописати коментар

Не обязательно регистрироваться, вы наверняка уже зарегистрированы в одном из сервисов, который предоставляет OpenId, предлагаю воспользоваться им. Подробнее: http://openid.net/what/