Как протолкнуть локальную ветвь в одну из веток github? (Локальная ветка не клонирована, создана intead) - PullRequest
0 голосов
/ 30 мая 2018

У меня есть две ветви на моей локальной машине, а именно master, firstbranch. У меня есть две ветви в моем репозитории github, а именно master и firstbranch_1.Теперь я хочу перейти из моей локальной ветки (firstbranch) в удаленное хранилище ветки firstbranch_1.Как следуетПримечание: я ничего не клонировал из github. Сначала я создал его на своей локальной машине и поместил в репозиторий, а затем создал ветку в github.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Перемещение вашей локальной ветки на 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.

0 голосов
/ 30 мая 2018

Просто нажмите.Если ветви не связаны, то вам, вероятно, придется форсировать его.

git push origin firstbranch:firstbranch_1

(при условии, что пульт называется источником)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...