Мне было интересно, есть ли простой способ подтолкнуть и вытащить локальную ветку с удаленной веткой с другим именем, не всегда указав оба имени.
Например:
$ git clone myrepo.git
$ git checkout -b newb
$ ...
$ git commit -m "Some change"
$ git push origin newb:remote_branch_name
Теперь, если кто-то обновит имя_удаленного_ответа, я могу:
$ git pull
И все слитно / быстро продвигается. Однако, если я внесу изменения в мой локальный «новичок», я не смогу:
$ git push
Вместо этого я должен:
% git push origin newb:remote_branch_name
Кажется немного глупым. Если git-pull
используется, git-config branch.newb.merge
чтобы определить, откуда вытащить, почему не может git-push
иметь подобную опцию конфигурации? Есть хороший способ для этого или я должен просто продолжить долгий путь?
источник
git push buildserver .:test_this
где.
должно быть местное название филиала, которое я не обязательно знаю. Конечно, я мог бы это найти, но если бы для этого была короткая рука, например точка, это было бы круто.HEAD
- это сокращение, которое вы ищете.HEAD
это то, что указывает на текущую извлеченную ветку или непосредственно на конкретную фиксацию, если у вас есть отдельная головаUpdates were rejected because a pushed branch tip is behind its remote
ошибку для меня. Мой локальный репо был в курсе, но имена были просто разные.Когда вы делаете начальный push, добавьте параметр -u :
Последующие толчки пойдут туда, куда вы хотите.
РЕДАКТИРОВАТЬ:
Согласно комментарию, это только устанавливает тягу.
должен сделать это.
источник
-u
просто устанавливает апстрим, который в соответствии с вопросом уже установлен. Он должен установитьpush.default
дляupstrem
того, чтобыpush
соблюдать настройки восходящего потока, так как по умолчанию толькоpull
делает.git branch --set-upstream
это необходимо. Примечание: мойgit --version
2.17.1.Команда Адама теперь устарела. Ты можешь использовать:
установить восходящую ветвь
my_local_branch
кorigin/my_remote_branch
.источник
Вот процесс, который работал для меня.
Теперь ваш новый репо будет «origin», а оригинальный репо «upstream». Подтвердите это, запустив git remote -v. (Примечание: восходящий поток используется для извлечения из исходного репо - для того, чтобы синхронизировать локальную копию с проектом, в который вы хотите внести вклад, а источник используется для извлечения и продвижения, поскольку вы можете внести свой вклад в свое собственное репо).
git push origin master
Теперь мастер вашего нового удаленного репо (на Github) будет синхронизирован с оригинальным мастером, но у него не будет ни одной ветви функций.
Rebase - это умное слияние. Затем снова нажмите на мастер, и вы увидите выбранную ветку объектов как мастер в новом репо.
По желанию:
источник
Я уже давно сталкиваюсь с той же проблемой. Наконец-то у меня есть ряд утверждений, поэтому мне не нужно делать это
git push origin local:remote
каждый раз. Я следовал за этим:После установки восходящего потока на удаленную ветвь с другим именем (1-я строка), а затем сделав этот восходящий канал по умолчанию (2-я строка), 3-я строка теперь будет подчиняться этим правилам и перейдет к установленному восходящему каналу.
источник