Ответы:
Вы можете ссылаться на эти ветви удаленного отслеживания ~ (перечислены с помощью 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
).
aLocalBranch
» в « myBranch
», где « myBranch
» представляет удаленную ветку origin/aBranch
.
aLocalBranch
это не опечатка, но вы одобрили последнее изменение (2 года спустя!), Которое исправляет эту «вероятную опечатку». Я хотел уточнить у вас, перед отменой редактирования.
Всякий раз, когда я делаю слияние, я попадаю в ветку, в которую я хочу слиться (например, " git checkout branch-i-am-working-in
"), и затем делаю следующее:
git merge origin/branch-i-want-to-merge-from
git fetch origin/branch-i-want-to-merge-from
первый, верно?
git fetch origin develop
затемgit merge origin/develop
git merge
один не сделает этого.
git add .
-> git commit -m <message>
-> git push -u origin <branch>
?
Сначала извлеките удаленную ветку из источника.
git fetch origin remote_branch_name
Объединить удаленный филиал с локальным филиалом
git merge origin/remote_branch_name
Может быть , вы хотите , чтобы отслеживать удаленный филиал с местным отделением:
git branch new-local-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
Если вы уже загрузили удаленную ветку и сделали это 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. Я поставил его как другой ответ, потому что блоки кода не вписываются в формат комментария)