Я настроил некоторые удаленные ответвления отслеживания в мерзавце, но я никогда, кажется, не могу объединить их в локальное ответвление, после того как я обновил их с 'выборкой мерзавца'.
Например, предположите, что у меня есть удаленное ответвление, названное '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]: Я проверил пару раз, и я нахожусь определенно не на другом ответвлении. Мой 'мерзавец должен выбрать' сопровождаемый 'слиянием мерзавца' (как показано выше), делают ту же самую вещь как получение по запросу мерзавца? Я получу некоторый рабочий процесс, показывающий результаты состояния мерзавца и т.д.
Вы не выбираете ветку, вы получаете весь пульт:
git fetch origin
git merge origin/an-other-branch
Git pull на самом деле является комбинированным инструментом: он запускает git fetch (получает изменения) и git merge (объединяет их с вашей текущей копией)
вы уверены, что находитесь в правильной ветке?
Вы уверены, что находитесь на локальной другой ветке
при слиянии?
git fetch origin an-other-branch
git checkout an-other-branch
git merge origin/an-other-branch
Объяснение другое:
все изменения из ветки, которую вы пытаетесь слить, уже были слиты в ветку, на которой вы сейчас находитесь.
Более конкретно это означает, что ветка, которую вы пытаетесь слить, является родительской для вашей текущей веткиесли вы опережаете удалённое репо на один коммит, то это удалённое репо устарело, а не вы.
Но в вашем случае, если git pull
работает, это просто означает, что вы находитесь не на той ветке.