Я возился с разработкой для iOS и узнал, что Xcode теперь интегрируется с Git, а не с SVN. Так что теперь я забочусь об изучении основ Git.
Мне не особо нужен распределенный контроль версий - возможно, мне проще централизовать централизацию своего централизованного мозга. Но быстрый просмотр позже, я нашел это: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow Это здорово! Это тот рабочий процесс, к которому я привык!
Но, хотя он показывает мне команды, все еще есть некоторые основы распределенной природы Git, которые мне не хватает.
- В SVN я бы проверял N разных экземпляров (рабочих копий) источника, потому что, возможно, я работаю над более чем одной веткой функций одновременно.
В Git ... я продолжаю слышать, что я клонирую хранилище . Как мне сопоставить эту идею с «У меня работает N экземпляров рабочей копии»?
В SVN я фиксирую некоторые изменения из моей рабочей копии в ветви функций в центральной части. репо, и фиксация завершится неудачей, если я не обновил свою рабочую копию до заголовка ветви функций.
В Git ... я предполагаю, что я могу сделать коммит из моегорабочая копия в ветви функций в моем локальном репо, соответствует ли локальное репо центральному репо или нет? Как перенести мое изменение из локального репо в центральное репо и как отразить конфликты слияния (особенно, если изменение, которое уже зафиксировано в локальном репо, конфликтует с другим изменением, которое превратилось в центральное репо?)
В SVN я реинтегрирую ветвь объекта путем:
- проверки (из центрального репо) ветки разработки (в номенклатуре ссылки Atlassian) нарабочая копия
- Применение слияния SVN изменений в ветви функций (в центральном репо) к моей рабочей копии ветви разработки
- Разрешение любых конфликтов слияния в моей локальной рабочей копии
- Отправка моей рабочей копии в разрабатываемую ветвь (опять же, в центральном репо)
Как этот процесс выглядит в Git, особенно вокруг разрешения-слияниябиты?