Github несколько филиалов / разработчиков - PullRequest
0 голосов
/ 30 апреля 2020

Итак, я начал использовать github сегодня. По сути, есть двое из нас (программистов), которые будут работать над одним проектом с микроконтроллером PI C. Я немного поэкспериментировал и прочитал несколько вещей и терминов, таких как ветки, коммит, мастер и т. Д. c .. Итак, скажем, у меня есть только один основной файл. c, содержащий 4 строки.

Это наш главный файл. Нас двое развиваются одновременно. Теперь мы делаем две ветви из этого мастера (так что в основном это снимок текущего кода). Две ветви - это «branch1» и «branch2», где я делаю изменения с использованием branch1, а мой партнер - с использованием branch2. Я вставил строку «dummy = 0» между line2 и line3, в то время как мой партнер вставил «dummy = 0» между line3 и line4. Итак, в конце дня я передам свои изменения в branch1, получу запрос на слияние моих изменений с master. Теперь, как мой партнер делает свои изменения в новом мастер-файле (после того, как я зафиксировал мой)? Обратите внимание, что мы начали с того же основного файла. Спасибо

Что мы сделали до сих пор: мы еще не пробовали вносить изменения одновременно. На данный момент мы сделали так, чтобы я попросил его внести изменения в Branch2, а затем попытаться получить запрос, чтобы я мог утвердить его, чтобы его изменения из ветви 2 выполнили для мастера. Моя проблема заключается в том, что мы, скорее всего, будем начинать с одного и того же мастер-кода каждый день, поэтому каждое внесенное изменение не будет переноситься на копию другого

1 Ответ

0 голосов
/ 30 апреля 2020

Git - это система управления версиями, работающая с инкрементными различиями.

В вашем сценарии у вас есть 3 ветви: master, branch1, branch2. Вы оба работаете над одним и тем же файлом в двух ветвях разработчика (но не над мастером).

После того, как вы отправили свои изменения с фиксацией на branch1, ваш партнер ничего не увидит в branch2: они это разные пути.

Ваш партнер должен объединить ваш последний коммит в branch2. Таким образом, два расходящихся пути встретились и снова стали одним. Если вы продолжите branch1, промойте и повторите процесс.

Поскольку вы заявили, что добавили обе строки в один файл, ожидайте конфликтов : «объединение» означает начинать с файл, каким он был тогда (в начале branch2), затем воспроизведите все правки, которые были сделаны в каждом коммите, в указанном порядке. Когда вам придётся собрать воедино правки обеих веток, возможно, это будет конфликтовать. Скажем, например, что вы добавили dummy = 0 в строке 4. Ваш партнер также сделал это, но написал dummy = 1 в строке 4. Git не решает за вас, вам придется разрешить конфликт и решить, какой один оставить.

Обратите внимание, что я не упомянул мастера. Я отсылаю вас к gitflow для этого, это слишком широкий аргумент для одного вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...