Git Remote Branch отслеживание - PullRequest
       2

Git Remote Branch отслеживание

1 голос
/ 25 августа 2010

Как все-в-одном (или, по крайней мере, проще) сделать это?По сути, я хочу создать ветку, но она отслеживается, чтобы я мог перенести изменения в качестве резервной копии в центральное хранилище.

git branch BranchName
git push origin BranchName
git -d BranchName 
git branch --track BranchName origin/BranchName

Я провел несколько поисков в Google и SO, но ясбит с толку обычными описаниями настройки удаленных веток и их отслеживания.

Ответы [ 2 ]

7 голосов
/ 25 августа 2010

Обычное использование для отслеживания веток - это то, что вы можете получить их.Если вы хотите отправить резервное копирование на удаленный компьютер, возможно, вам нужны все ваши филиалы, да?Таким образом, вы можете сделать это:

git config remote.backup.mirror true

Затем, когда вы запустите git push backup, по умолчанию будет действовать git push --mirror backup, который выталкивает все ссылки (не только все ветви- все теги, все остальные ваши удаленные ветви, все).

Если вы не хотите заходить так далеко, вы все равно можете сделать:

git push --all backup

Это подтолкнет все ветви, но не остальные ваши ссылки.

Наконец, если вы действительно хотите просто нажать одну ветку ... ну, по сути, вы всегда должны просто делать это:

git push origin backup-branch

единственный способ сделать его короче, это просто сделать его операцией по умолчанию, выполняемой git push, если вы действительно этого хотите.Есть четыре варианта поведения git push без аргументов:

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

Вы можете установить предпочтительный с помощью git config push.default <value>.Если вы измените его на tracking, настройка резервной ветви как ветви отслеживания позволит вам выдвинуть ее без аргументов, но только , если она уже извлечена.И это помешает вам использовать git push для одновременного проталкивания множества веток (поведение по умолчанию, что очень приятно).Итак, если вы действительно хотите сделать это таким образом, вам действительно нужно настроить свою ветвь как отслеживающую ветвь.Вы можете сократить способ, которым вы сделали это немного:

git branch backup-branch
git push origin backup-branch
# most elegant way:
git branch --set-upstream backup-branch origin/backup-branch
# or this:
# git branch -f backup-branch origin/backup-branch
# or this:
# git config branch.backup-branch.remote origin
# git config branch.backup-branch.merge refs/heads/backup-branch
1 голос
/ 05 ноября 2011

Я использовал этот сайт http://git -wt-commit.rubyforge.org / git-publish-branch для собственного использования (после долгих поисков в стеке).

Процесс сводился к следующему:

git branch *branchname*
git push origin *branchname*
git config branch.*branchname*.remote origin
git config branch.*branchname*.merge *branchname*

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...