Отправка локальной ветки на GitHub

117

У меня Git настроен так, что при запуске git pushон отправляет изменения в мой репозиторий GitHub. До сих пор у меня была только основная ветка.

Однако теперь я создал локальную ветку и совершил ее, используя:

git checkout -b my_new_branch
git commit

Сейчас я бы хотел отправить свои изменения в этой ветке на GitHub. Я просто сделаю git push?

Когда я впервые установил его, я запустил:

git config push.default current
Ноам
источник
В чем именно заключается ваш вопрос? При push.defaultтаком выборе да, git pushтекущая ветка будет отправлена ​​в исходную точку, которая является вашим репозиторием на github, если вы клонировали оттуда. (Вы можете указать другой пульт, branch.my_new_branch.remoteесли хотите.) Итак, вы пробовали это, и он не работал?
Cascabel
1
Если вы хотите, чтобы все ваши локальные ветки отправлялись в одну и ту же удаленную ветку, укажите явно: git push origin HEAD: remote_branch
Ustaman Sangat

Ответы:

221

Я считаю, что вы ищете git push origin my_new_branch, предполагая, что ваш исходный пульт настроен для доступа к вашему репозиторию github.

Том
источник
git push <remote> <branch> согласно atlassian.com/git/tutorials/syncing/git-push
vikramvi
3
Если вы затем захотите работать над этой веткой с другими людьми и, следовательно, выполните git pull, вы захотите установить информацию отслеживания для своей новой ветки: git branch --set-upstream-to=origin/my_new_branch my_new_branch
gloriphobia
9

В зависимости от ваших локальных настроек git, если у вас есть извлеченная ветка, которая не является той, которую вы клонировали, или той, которая существует там, где вы пытаетесь нажать, git не будет нажимать вашу локальную ветку.

Вот его сообщение:

предупреждение: push.default не задан; его неявное значение изменилось в Git 2.0 с «соответствия» на «простое». Чтобы подавить это сообщение и сохранить традиционное поведение, используйте:

git config --global push.default сопоставление

Чтобы подавить это сообщение и принять новое поведение сейчас, используйте:

git config --global push.default просто

Если для push.default установлено значение «Matching», git будет отправлять локальные ветки в удаленные ветки, которые уже существуют с тем же именем.

Начиная с Git 2.0, Git по умолчанию использует более консервативное «простое» поведение, которое подталкивает текущую ветвь к соответствующей удаленной ветке, которую git pull использует для обновления текущей ветки.

См. "Git help config" и поиск "push.default" для получения дополнительной информации. («простой» режим был представлен в Git 1.7.11. Используйте аналогичный режим «текущий» вместо «простой», если вы иногда используете более старые версии Git)

фатальный: текущая ветвь MyLocalBranchне имеет восходящей ветки. Чтобы протолкнуть текущую ветку и установить удаленный как восходящий поток, используйте

git push --set-upstream origin MyLocalBranch
xaxxon
источник
0

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

git push --all

--все

Вставьте все ветки (т.е. ссылки ниже refs/heads/); нельзя использовать с другими <refspec>.

Serv-вкл
источник
-12

Если вы настроили свой git для отправки в главное репозиторий GitHub, независимо от того, в какой ветке вы находитесь, он будет отправляться в ваше главное репозиторий GitHub.

Имейте в виду, что если в одном репозитории работает много разработчиков, может возникнуть конфликт.

GiaNU
источник
Я запустил git config push.default current
Ноам