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

Git merge after fetch - как именно?

Я читал из разных источников, что обычно лучше получить выбор, а не просто тянуть, поскольку это позволяет более тонкое управление. Тем не менее, мне еще предстоит найти, как это сделать. Пример:

Было небольшое изменение, внесенное в какой-то код в одном из моих ветвей главного хранилища GitHub. Я смог получить его, но я не знаю, как на самом деле объединить различия с моей локальной ветвью мастера. git branch перечислены все локальные ветки, которые у меня есть, но ничего не указывает на что-либо, чтобы слиться с.

Итак, это что-то вроде git merge master или git merge origin/master? Что мне не хватает?

4b9b3361

Ответ 1

git merge origin/master должен работать. Поскольку master обычно является ветвью отслеживания, вы также можете сделать git pull из этой ветки, и она сделает выборку и слияние для вас.

Если у вас есть локальные изменения на master, которые не отражаются на origin, вы можете захотеть git rebase origin/master убедиться, что ваши коммиты "сверху".

Ответ 2

Я обычно делаю это:

git merge --ff-only @{u}

Что говорит: "Только ускоренное слияние из ветки отслеживания восходящего потока". Это хорошо, потому что, если он терпит неудачу, тогда я знаю, что я представил что-то на master, которое не находится вверх по течению. У меня есть aliased для ff, просто чтобы было легче набрать.

Если есть изменения, и вы просто хотите их объединить, вы можете сделать:

git merge @{u}

который будет сливаться в восходящей ветке. Однако, если вы хотите получить более чистую историю (и избегаете "Объединение" происхождение/мастер "в" мастер ", то вы можете вместо этого подумать о переустановке:

git rebase @{u}

Конечно, вы можете origin/master вместо @{u} в любом из этих примеров.

Ответ 3

Команда

git pull $some_url

эквивалентно

git fetch $some_url
git merge FETCH_HEAD

Более подробную информацию см. в git -pull (1) man, особенно первые два абзаца описания.