Я использую Git около года, сразу после создания моей учетной записи на github . У меня действительно хорошее впечатление от использования этого инструмента, но все же — на моей основной работе в e-conomic мы используем SVN в качестве основного инструмента VCS.
Вы, наверное, знаете обо всем хорошем с Git. Если вы все еще не можете, вы можете проверить эти отличные ответы на Stackoverflow. Вкратце — Git добавляет преимущества, но добавляет и сложность.
После небольшой оценки я обнаружил, что эти преимущества стоит прекратить использовать SVN и переключиться на Git. Но, если вы спросите своих коллег «Готовы ли вы пойти с Git?» вы, вероятно, услышите «Нет!» Понятно, почему люди привыкли к текущим инструментам … вокруг них строится инфраструктура. И переход от одного VCS к другому казался разрушением основы здания для многих разработчиков.
К счастью, Git имеет функцию убийцы, которой нет у других DVCS! И эта функция поможет вам начать работу с Git, даже если ваша компания все еще использует SVN в качестве стандарта. Да, я говорю о git-svn .
Поверьте мне, это удивительно! У меня всегда есть небольшое недоверие к такому инструменту интеграции, но пока он работает как шарм. Итак, я дам вам небольшие инструкции, которые позволят вам завтра прийти в ваш офис и начать использовать Git в качестве собственной VCS.
Настройте свою среду
- Скачать и установить msysgit
- Настройка информации о локальном пользователе, пример
git config --global user.name “alexander.beletsky” git config --global user.email “[email protected]”
- Если вы работаете в Windows и занимаетесь только разработкой Windows, рекомендуется отключить autocrlf
git config core.autocrlf false
Извлечение кода из хранилища SVN
- Запустите команду git clone (это может занять некоторое время, в зависимости от хранилища и размера журнала)
git svn clone https://mysvnserver/repo
Когда клон закончен, вы увидите, что новая папка репозитория создана с содержимым вашего SVN-репозитория. Теперь эта папка на самом деле является Git-репозиторием + вы копируете локальные источники. Попробуйте запустить git log внутри репозитория, и вы увидите, что вся ваша история там!
Давай поработаем
Теперь предположим, что вы начали работать над некоторым исправлением. По умолчанию репозиторий git содержит одну ветку с именем master. Хороший стиль — вообще не делать прямых коммитов в master, просто сохраняйте их как точку синхронизации между репозиторием SVN и вашим локальным репозиторием. Итак, чтобы сделать реальную работу, вы должны создать филиал.
git checkout -b bugfix-id-1453
Эта команда создаст новую ветку с именем bugfix-id-1453 и сразу переключится на нее. Если вы не заметили, как это произошло — пожалуйста, добро пожаловать в мир высокой производительности git.
Вы изменили какой-то файл и готовы к фиксации. В git это двухэтапная операция. Во-первых, вам нужно поместить контент на сцену. Во-вторых, вы сохраняете контент в новом объекте коммита.
git add . git commit -m "issue has been fixed"
Передать изменения обратно в SVN
Вы исправили ошибку, и теперь исправлено, помещено в bugfix-id-1453. Но вы должны вернуть его остальному миру.
Оформите вашу главную ветку:
git checkout master
Получить последние изменения из SVN:
git svn rebase
Теперь сервер SVN и локальная главная ветвь идентичны. Мы должны объединить наше исправление с мастером:
git merge bugfix-id-1453
Теперь мастер содержит предыдущее состояние SVN + новое исправление. Мы должны синхронизировать локальный репозиторий и сервер SVN:
git svn dcommit
Выводы
Git-svn — идеальный инструмент для начала использования git без радикальных изменений в организации. Это дает всем возможность попробовать, насколько это действительно соответствует вашим потребностям. Мне сейчас очень приятно работать с Git. Я не говорю, что это идеальный плавный процесс, конечно, я столкнулся с некоторыми трудностями. Но для меня эти трудности — ничто по сравнению с преимуществами, которые я получаю от этого.
С http://www.beletsky.net/2011/06/how-to-start-using-git-in-svn-based.html