Есть ли ярлык, чтобы сказать Git, чтобы подтолкнуть текущую ветвь отслеживания к источнику?
Примечание: я знаю, что могу изменить поведение push по умолчанию , но я ищу специальное решение, которое не меняет поведение по умолчанию.
Например, предположим, что я нахожусь на ветке, feature/123-sandbox-tests
я буду использовать
git push origin feature/123-sandbox-tests
что утомительно. Я ищу ярлык, что-то вроде
git push origin current
где git знает, что ток есть feature/123-sandbox-tests
.
Редактировать : Начиная с версии 2.0, поведение git по умолчанию изменилось на более интуитивное, чего я и хотел достичь. Смотрите этот ТАК вопрос для деталей.
Правка 2 : ответ ceztko - лучший ответ, поскольку он позволяет нажать текущую ветку, независимо от настроек.
git push
только к выталкиванию текущей ветви, но на других машинах вы можете случайно подтолкнуть все соответствующие ветви.co
, поэтому, если я попытаюсь даже снять и затем проверить код без моего~/.gitconfig
файла на этой виртуальной машине, я сразу узнаю об этом. Это позволяет мне чувствовать себя в безопасности при изменении значения толчка по умолчаниюupstream
.@
, что задокументировано как действительный псевдонимHEAD
. (напримерgit push -u origin @
)Вы можете настроить git для отправки в текущую ветку, используя следующую команду
тогда просто делай
это подтолкнет код к вашей текущей ветке.
источник
push = refs/heads/current:refs/for/master/current
в «удаленный» раздел в .git / config? То есть «текущее» здесь особенное слово? Или это будет искать ветку под названием "текущий"?git push -u origin feature_branch_name
настроить upstream / tracking! Если вы используете удаленный репозиторий по крайней мере.Вы должны взглянуть на аналогичный вопрос в поведении по умолчанию «git push» без указания ветки
В основном, это объясняет, как установить поведение по умолчанию для принудительного запуска текущей ветви
git push
. Вероятно, вам нужно:git config --global push.default current
Другие опции:
источник
Я использую такой псевдоним в моем конфиге .bashrc
По команде
$gpb
он берет текущее имя ветки и отправляет его в начало координат.Вот мои другие псевдонимы:
источник
Для чего это стоит, окончательный ярлык:
По моему, у
.bash_profile
меня естьalias push="git push origin HEAD"
, поэтому всякий раз, когда я печатаю,push
я знаю, что нажимаю на текущую ветку, на которой я работаю.источник
Если вы используете git 1.7.x, вы можете запустить следующую команду, чтобы установить ветку удаленного отслеживания.
Тогда вы можете просто использовать,
git push
чтобы протолкнуть все изменения. Для более полного ответа, пожалуйста, смотрите принятый ответ на аналогичный вопрос здесь.Если вы хотите отправить текущую ветку только с помощью команды push, вы можете изменить поведение push на upstream:
источник
git config --global push.default upstream
установит поведение push для нажатия только текущей ветви.Самый простой способ: запустить
git push -u origin feature/123-sandbox-tests
один раз. Это продвигает ветку так, как вы привыкли это делать, а также устанавливает информацию отслеживания восходящего потока в вашей локальной конфигурации. После этого вы можете простоgit push
отправить отслеживаемые ветви на их вышестоящие пульты.Вы также можете сделать это в конфигурации самостоятельно, установив
branch.<branch name>.merge
имя удаленной ветви (в вашем случае то же самое, что и локальное имя) и, опционально,branch.<branch name>.remote
имя удаленного филиала, к которому вы хотите перейти (по умолчанию - источник). Если вы посмотрите в своем конфиге, скорее всего, один из них уже установленmaster
, так что вы можете следовать этому примеру.Наконец, убедитесь, что вы считаете
push.default
настройку. По умолчанию используется «соответствие», что может привести к нежелательным и неожиданным результатам. Большинство людей, которых я знаю, считают «восходящий поток» более интуитивным, что подталкивает только текущую ветку.Подробную информацию о каждой из этих настроек можно найти на справочной странице git-config .
Если подумать, перечитав ваш вопрос, я думаю, вы все это знаете. Я думаю, что вы на самом деле ищете, не существует. Как насчет функции bash что-то вроде (не проверено):
источник
С помощью ответа ceztko я написал эту маленькую вспомогательную функцию, чтобы сделать мою жизнь проще:
Он переводит текущую ветвь в исходную, а также устанавливает удаленную ветвь отслеживания, если она еще не настроена.
источник