Я вытащил все удаленные ветки через git fetch --all. Я вижу ветку, которую я хотел бы объединить с помощью git branch -a в качестве remotes/origin/branchname. Проблема в том, что она недоступна. Я не могу слить или проверить?
Git: объединить удаленную ветвь
Ответ 1
Вы можете ссылаться на эти ветки удаленного отслеживания ~ (перечисленные в git branch -r) с именем их пульта.
Вам нужно получить удаленную ветку:
git fetch origin aRemoteBranch
Если вы хотите объединить одну из этих удаленных веток в вашей локальной ветке:
git checkout master
git merge origin/aRemoteBranch
Примечание 1: Для большого репо с длинной историей вы захотите добавить --depth=1 при использовании git fetch.
Примечание 2: Эти команды также работают с другими удаленными репозиториями, так что вы можете настроить origin и upstream если вы работаете на форке.
Противоположный сценарий: если вы хотите объединить одну из ваших локальных веток в удаленной ветке (в отличие от удаленной ветки в локальную, как показано выше), вам нужно сначала создать новую локальную ветку поверх указанной удаленной ветки:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
Идея здесь состоит в том, чтобы объединить "одну из ваших локальных веток" (здесь anotherLocalBranch) с удаленной веткой (origin/aBranch).
Для этого вы сначала myBranch представляющий эту удаленную ветвь: это git checkout -b myBranch origin/aBranch.
И тогда вы можете объединить anotherLocalBranch с ней (с myBranch).
Ответ 2
Всякий раз, когда я делаю слияние, я попадаю в ветвь, в которую я хочу объединиться (например, "git checkout branch-i-am-working-in" ), а затем выполните следующие действия:
git merge origin/branch-i-want-to-merge-from
Ответ 3
Возможно, вы хотите отслеживать удаленную ветвь с локальной ветвью:
- Создайте новую локальную ветвь:
git branch new-local-branch - Установите эту вновь созданную ветвь для отслеживания удаленной ветки:
git branch --set-upstream-to=origin/remote-branch new-local-branch - Введите в эту ветку:
git checkout new-local-branch - Потяните все содержимое удаленной ветки в локальную ветвь:
git pull
Ответ 4
Сначала извлеките удаленную ветку из источника.
git fetch origin remote_branch_name
Объединить удаленный филиал с локальным филиалом
git merge origin/remote_branch_name
Ответ 5
Если вы уже выбрали удаленную ветку и выполняете git branch -a,
вы получаете что-то вроде:
* 8.0
xxx
remotes/origin/xxx
remotes/origin/8.0
remotes/origin/HEAD -> origin/8.0
remotes/rep_mirror/8.0
После этого вы можете использовать rep_mirror/8.0 для локального расположения вашей удаленной ветки.
Фокус в том, что remotes/rep_mirror/8.0 не работает, но rep_mirror/8.0 делает.
Итак, команда типа git merge -m "my msg" rep_mirror/8.0 выполняет слияние.
(обратите внимание: это комментарий к ответу @VonC. Я поставил его как еще один ответ, потому что кодовые блоки не вписываются в формат комментариев)