Подтвердить что ты не робот

Git нажать на конкретную ветвь

Даже после прочтения этого вопроса: git-push-current-branch, мне все еще трудно понять, как мне написать команду git push. Как упоминалось в ссылке вопроса, это не ясно из документации.

Я хотел бы использовать пример "реального мира". Ниже приводится то, что я вижу, когда выполняю команду git status на верхнем уровне моей ветки:

На ветке amd_qlp_tester

Ваша ветка опережает "origin/amd_qlp_tester" на 5 коммитов.

и т.д...

Итак, мое название ветки amd_qlp_tester, но оно было "разветвлено" от основной ветки (если у меня есть неправильные условия из-за моего фона SVN). Но тогда есть также имя `origin/amd_qlp_testser '

Итак, как я могу выразить свою команду push?

Это любой из них:

git push origin/amd_qlp_tester?
git push origin amd_qlp_tester?
git push amd_qlp_tester?
git push origin?
git push?
4b9b3361

Ответ 1

git push origin amd_qlp_tester будет работать для вас. Если вы просто наберете git push, то удаленный доступ к текущей ветке будет значением по умолчанию.

Синтаксис push выглядит так: git push <remote> <branch>. Если вы посмотрите на свой пульт в файле .git/config, вы увидите запись [remote "origin"], которая указывает URL-адрес репозитория. Итак, в первой части команды вы скажете Git, где найти репозиторий для этого проекта, а затем просто укажите ветку.

Ответ 2

Если ваша локальная ветвь и удаленная ветвь имеют одно и то же имя, вы можете просто сделать это:

git push origin branchName

Когда ваше локальное и удаленное имя ветки отличается, вы можете просто сделать это:

git push origin localBranchName:remoteBranchName

Ответ 3

Ответы, о которых вы говорили, связаны с настройкой git, чтобы вы могли ввести очень короткие команды git push и заставить их делать все, что хотите. Это здорово, если вы знаете, что хотите, и как записать это в Git -Если, но вы новичок в git!: -)

В вашем случае ответ Петра Менсика является правильным (ну, "а" ) правильным. Вот почему:

Команда git push remote коренится в вашем файле .git/config для поиска имени "remote" (например, origin). Список конфигурационных файлов:

  • где (по URL-адресу), что удаленный "живет" (например, ssh://hostname/path)
  • когда нажатие идет, если отличается
  • что толкается, если вы не сказали, в какую ветку нажать, чтобы нажать
  • то, что будет получено при запуске git fetch remote

Когда вы сначала клонировали репо - когда бы то ни было - git установили значения по умолчанию для некоторых из них. URL-адрес - это то, что вы клонировали, а остальные, если установлено или отменено, являются "разумными" значениями по умолчанию... или, хм, они?

Проблема заключается в том, что люди со временем изменили свое мнение о том, что "разумно". Итак, теперь (в зависимости от вашей версии git и подробно настроены ли вы), git может печатать множество предупреждений об изменениях по умолчанию в будущем. Добавление имени "branch to push" - amd_qlp_tester - (1) отключает его и (2) толкает только одну ветвь.

Если вы хотите повысить удобство, вы можете сделать это с помощью

git push origin

или даже:

git push

но независимо от того, что делает то, что вы хотите, зависит от того, согласны ли вы с "ранними git авторами", что исходные значения по умолчанию являются разумными или "позже git authors", что исходные значения по умолчанию не являются разумными. Итак, когда вы хотите сделать все содержимое конфигурации (в конечном итоге), см. Вопрос (и ответы), с которым вы связаны.

Что касается имени origin/amd_qlp_tester в первую очередь: это фактически локальный объект (имя, хранящееся внутри вашего репо), хотя оно и называется "удаленной ветвью". Это git лучшее предположение, где amd_qlp_tester находится там ". git обновляет его, когда он может.

Ответ 4

Я хотел бы добавить обновленный ответ - теперь я уже некоторое время использую git и обнаружил, что часто использую следующие команды для выполнения любого нажатия (используя исходный вопрос в качестве примера):

  • git push origin amd_qlp_tester - push в ветку, расположенную в origin, называемую amd_qlp_tester
  • git push -u origin amd_qlp_tester - такой же, как последний, но устанавливает восходящий git push -u origin amd_qlp_tester связывающий локальную ветку с удаленной веткой, чтобы в следующий раз вы могли просто использовать git push/pull если он еще не связан (нужно сделать это только один раз).
  • git push - После того, как вы установили апстрим, вы можете просто использовать эту более короткую версию.

Примечание. -u - это короткая версия --set-upstream - они одинаковые.