Подтвердить что ты не робот

Что происходит, когда я делаю git pull origin master в ветке разработки?

Скажем, у меня есть частная ветвь темы, называемая develop с 2 коммитами впереди мастера.

Что делает git pull origin master?

Вытащить все из удаленного мастера в локальную разработку и объединить его? Потяните все в локальной ветки мастера и объедините ее?

И есть ли способ сначала обновить мастер от разработки без git checkout master?

4b9b3361

Ответ 1

git pull origin master вытаскивает ведущую ветку с пульта, называемого origin в вашу текущую ветку. Это влияет только на вашу текущую ветку, а не на локальную ветвь мастера.

Это даст вам историю, выглядящую примерно так:

- x - x - x - x (develop)
   \         /
    x - x - x (origin/master)

В этом не имеет значения местная ветвь мастера. git pull по существу представляет собой комбинацию git fetch и git merge; он извлекает удаленную ветвь, затем объединяет ее в вашу текущую ветку. Это слияние, как и любое другое; он не делает ничего волшебного.

Если вы хотите обновить локальную ветвь мастера, у вас нет выбора, кроме как проверить это. Невозможно объединиться в ветку, которая не проверена, потому что для выполнения слияния Git требуется дерево работы. (В частности, это абсолютно необходимо, чтобы сообщать о конфликтах слияния и разрешать их решать.)

Если вам известно, что перетаскивание в мастера будет быстрой перемоткой (т.е. у вас нет коммитов в вашей локальной ветки мастера, которые не находятся на начальном уровне), вы можете обойтись, как описано в этом ответе.

Ответ 2

Как только вы зафиксируете изменения в своей ветке с помощью

git add -A
git commit -m <message>

Затем вы можете:

git pull origin master

в вашу ветку, и это приведет к тому, что ваши коммиты будут превышены. Ваша ветка теперь будет даже с мастером + ваши коммиты сверху. Итак, теперь вы можете:

git push

и git будут подталкивать ваши изменения вместе с мастером, введет в вас ветку. Вы можете легко объединить это в master на Github.