Как Делают я 'выборка мерзавца' и 'мерзавец объединяюсь' от Удаленного Ответвления Отслеживания (как 'получение по запросу мерзавца')

Я настроил некоторые удаленные ответвления отслеживания в мерзавце, но я никогда, кажется, не могу объединить их в локальное ответвление, после того как я обновил их с 'выборкой мерзавца'.

Например, предположите, что у меня есть удаленное ответвление, названное 'an-other-branch'. Я настроил это локально как использование ответвления отслеживания

git branch --track an-other-branch origin/an-other-branch

Пока все хорошо. Но если то ответвление обновляется (обычно мной движущаяся машина и фиксирующий от той машины), и я хочу обновить его на исходной машине, я сталкиваюсь с проблемой с выборкой/слиянием:

git fetch origin an-other-branch
git merge origin/an-other-branch

Каждый раз, когда я делаю это, я получаю 'Уже актуальное' сообщение, и ничто не объединяется.

Однако a

git pull origin an-other-branch

всегда обновления это как Вы ожидало бы.

Кроме того, рабочая разность мерзавца

git diff origin/an-other-branch

шоу, что существуют различия, таким образом, я думаю, что у меня есть свой синтаксис неправильно.

Что я делаю неправильно?

РЕДАКТИРОВАНИЕ [2010-04-09]: Я проверил пару раз, и я нахожусь определенно не на другом ответвлении. Мой 'мерзавец должен выбрать' сопровождаемый 'слиянием мерзавца' (как показано выше), делают ту же самую вещь как получение по запросу мерзавца? Я получу некоторый рабочий процесс, показывающий результаты состояния мерзавца и т.д.

111
задан kaybenleroll 9 April 2010 в 19:24
поделиться

3 ответа

Вы не выбираете ветку, вы получаете весь пульт:

git fetch origin
git merge origin/an-other-branch
169
ответ дан 24 November 2019 в 03:00
поделиться

Git pull на самом деле является комбинированным инструментом: он запускает git fetch (получает изменения) и git merge (объединяет их с вашей текущей копией)

вы уверены, что находитесь в правильной ветке?

3
ответ дан 24 November 2019 в 03:00
поделиться

Вы уверены, что находитесь на локальной другой ветке при слиянии?

git fetch origin an-other-branch
git checkout an-other-branch
git merge origin/an-other-branch

Объяснение другое:

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

если вы опережаете удалённое репо на один коммит, то это удалённое репо устарело, а не вы.

Но в вашем случае, если git pull работает, это просто означает, что вы находитесь не на той ветке.

9
ответ дан 24 November 2019 в 03:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: