Даже после прочтения этого вопроса: 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
источник
origin amd_qlp_testser
а неorigin/amd_qlp_tester
origin
). Ветвь (ветки) для переноса значений по умолчанию (в текущих версиях git),:
если они не установлены, что означаетmatching
, что это должно измениться в будущем.git push
он пытается подтолкнуть все отслеживаемые ветки, вопреки тому, что вы сказали («пульт от текущей ветки - значение по умолчанию»).simple
стратегию push, что означает, что будет отправляться только текущая ветка. blogs.atlassian.com/2014/06/happened-git-2-0-full-goodiesfatal: Couldn't find remote ref branch-name-here
Если ваша локальная ветка и удаленная ветка имеют одно и то же имя, вы можете просто сделать это:
Если имя вашей локальной и удаленной ветки отличается, вы можете просто сделать это:
источник
Все ответы на вопросы, с которыми вы связались, касаются настройки git, чтобы вы могли ввести очень короткие
git push
команды и заставлять их делать все, что вы хотите. И это здорово, если вы знаете, что хотите и как это написать в Git-Ese, но вы новичок в git! :-)В вашем случае ответ Петра Менсика (ну, «а»). Вот почему:
Команда ищет в вашем файле именованный «удаленный» (например, ). В файле конфигурации перечислены:
git push remote
.git/config
origin
ssh://hostname/path
)git fetch remote
Когда вы впервые клонировали репозиторий - всякий раз, когда это было - git устанавливал значения по умолчанию для некоторых из них. URL является то , что вы клонировали из и остальные, если он установлен или снята с охраны, которые все «разумные» по умолчанию ... или, хм, это они?
Проблема в том, что люди со временем изменили свое мнение относительно того, что является «разумным». Итак, сейчас (в зависимости от вашей версии git и от того, настроили ли вы все подробно), git может выводить множество предупреждений об изменении значений по умолчанию в будущем. Добавление имени «ветки, которую нужно нажать» -
amd_qlp_tester
- (1) закрывает ее, а (2) подталкивает только эту одну ветку.Если вы хотите нажимать более удобно, вы можете сделать это с помощью:
или даже:
но будет ли это делать то, что вы хотите, зависит от того, согласны ли вы с «ранними авторами git», что исходные значения по умолчанию разумны, или с «более поздними авторами», что исходные значения по умолчанию неразумны. Итак, когда вы захотите выполнить все настройки (в конечном итоге), просмотрите вопрос (и ответы), на который вы ссылаетесь.
Что касается имени
origin/amd_qlp_tester
в первую очередь: это фактически локальный объект (имя, хранящееся внутри вашего репо), даже если оно называется «удаленная ветвь». Это лучшая догадка мерзавца, «гдеamd_qlp_tester
это там». Git обновляет его, когда может .источник
git push origin amd_qlp_tester
пока мне не понадобится делать более сложные вещи :)Я хотел бы добавить обновленный ответ - теперь я использую git некоторое время, я обнаружил, что часто использую следующие команды для любого нажатия (используя исходный вопрос в качестве примера):
git push origin amd_qlp_tester
- нажать на ветку, расположенную на удаленном компьютере, которая называетсяorigin
удаленной веткойamd_qlp_tester
.git push -u origin amd_qlp_tester
- то же самое, что и предыдущий, но устанавливает восходящее соединение локальной ветки с удаленной веткой, чтобы в следующий раз вы могли просто использовать,git push/pull
если еще не связались (нужно сделать это только один раз).git push
- После того, как вы настроили апстрим, вы можете просто использовать эту более короткую версию.Примечание
-u
вариант является краткой версией--set-upstream
- они такие же.источник