Я возился с разработкой для iOS и узнал, что Xcode теперь интегрируется с Git, но не с SVN. Итак, теперь я забочусь об изучении основ Git.
Я не особо хочу распределенный контроль версий - возможно, централизация для меня просто упрощает мой ограниченный мозг. Но бегло просмотрев позже, я нашел это: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow Это здорово! Это тот рабочий процесс, к которому я привык!
Но, хотя он показывает мне команды, мне все еще не хватает некоторых основ распределенной природы Git.
- В SVN я бы проверил N разных экземпляров (рабочих копий) источника, потому что, возможно, я работаю над более чем одной функциональной веткой одновременно.
В Git ... Я все время слышу, что клонирую репозиторий. Как мне сопоставить эту идею с «У меня есть N экземпляров рабочих копий»?
В SVN я фиксирую некоторые изменения из моей рабочей копии в ветке функций в центральном репо, и фиксация завершится ошибкой, если я сначала не обновил свою рабочую копию до главы ветки функций.
В Git ... Я предполагаю, что могу выполнить фиксацию из моей рабочей копии в ветку функций в моем локальном репо, независимо от того, обновлено ли локальное репо с центральным репо? Как мне передать свое изменение из локального репо в центральное репо и как устранить конфликты слияния (особенно, если изменение, уже зафиксированное в локальном репо, конфликтует с другим изменением, внесенным в центральное репо?)
В SVN я реинтегрирую функциональную ветку:
- checking out (from the central repo) the develop branch (in the nomenclature of the Atlassian link) to a working copy
- Применение SVN-слияния изменений в ветке функций (в центральном репо) к моей рабочей копии ветки разработки
- Разрешение любых конфликтов слияния в моей локальной рабочей копии
- Передача моей рабочей копии в ветку разработки (опять же, в центральном репо)
Как этот процесс выглядит в Git, особенно в части разрешения конфликтов слияния?