Вставьте все локальные ветки в начало в git

Скажем, что у меня есть LOT локальных ветвей в моем git, не нажатом на удаленный репозиторий.

Как я могу вытолкнуть все из них в начало с помощью одной команды?

Ответы

Ответ 1

Вы пробовали

git push --all -u 

Пользователь git man

- все

Вместо того, чтобы называть каждый ref для push, указывается, что все ссылки refs/refs/head/нажаты.

-u, --set-upstream

Для каждой ветки, которая обновлена ​​или успешно нажата, добавьте ссылку вверху (отслеживание),

-u полезен, если вы намерены выйти из этих ветвей позже

Ответ 2

git push <remote_name> '*:*'

Команда интуитивно понятна в том, что она указывает :. В левой части на : указано имя локальной ветки, а в правой - ветка удаленной. В вашем случае мы хотим сопоставить одно и то же имя и, следовательно, команду.

*:* сообщает git, что вы хотите нажимать каждую локальную ветку на удаленный с тем же именем на удаленном компьютере. Таким образом, если у вас есть ветвь с именем my_branch, у вас будет удаленная ветвь с именем <remote_name>/my_branch.

Обычно вы делаете git push origin '*:*', и вы найдете каждую локальную ветвь с тем же именем на пульте дистанционного управления, которую вы можете подтвердить с помощью git branch -r, которая покажет вам все удаленные ветки.

Ответ 3

Вы можете использовать refspec, который сообщает git нажать все ваши ветки:

git push origin 'refs/heads/*:refs/heads/*'