Відповіді:
Ви можете посилатися на ці гілки віддаленого відстеження ~ (перераховані з git branch -r
) з назвою їх віддаленого.
Вам потрібно отримати віддалену гілку:
git fetch origin aRemoteBranch
Якщо ви хочете об'єднати одну з цих віддалених гілок у вашому місцевому відділенні:
git checkout master
git merge origin/aRemoteBranch
Примітка 1. Для великого репо з довгою історією ви хочете додати --depth=1
параметр під час використання git fetch
.
Примітка 2: Ці команди також працюють з іншими віддаленими репостами, щоб ви могли налаштувати an origin
і an, 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. Я ставлю це як ще одну відповідь, оскільки кодові блоки не вписуються у формат коментарів)