Перемещение вашей локальной ветки на GitHub
$ git push --set-upstream firstbranch
Требуется флаг --set-upstream
, чтобы "подключить" локальную и удаленную ветку, поэтому origin/firstbranch
будет отображаться в вашем журнале Git, а git status
будетпокажите сообщение
Your branch is ahead/behind 'origin/firstbranch' by XY commits
, если локальные и удаленные ветви различаются (поэтому вам нужно push
/ pull
).
"Клонирование" (выборка) ветки из GitHub
$ git fetch
$ git checkout firstbranch_1
Branch 'firstbranch_1' set up to track remote branch 'firstbranch_1' from 'origin'.
Это "клонирует" ветку и создает локальную firstbranch_1
, подключенную к удаленной.
Только что понял, что я неправильно понял ваш вопрос.Чтобы подключить локальный firstbranch
и удаленный firstbranch_1
, используйте
$ git push origin firstbranch:firstbranch_1
Но эта команда не будет выполнена, если две ветви различаются:
To https://github.com/whatever/repo.git
! [rejected] firstbranch -> firstbranch_1 (non-fast-forward)
error: failed to push some refs to 'https://github.com/whatever/repo.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Если вы хотите ...
Заменить удаленную ветвь на локальную
$ git push --force-with-lease origin firstbranch:firstbranch_1
Это приведет к принудительной передаче, удаленный firstbranch_1
будет заменен на локальные firstbranch
.
Заменить локальнуюветвь с удаленным
$ git checkout firstbranch
$ git reset --hard origin/firstbranch_1
Это отбросит изменения локального firstbranch
и переместит его кончик к удаленному firstbranch_1
.
Перебазируйте локальную ветку поверх удаленной ветки
$ git rebase origin/firstbranch_1 firstbranch
Это сохранит коммит firstbranch_1
и применимо к нему firstbranch
.