Как вы можете git тянуть только текущую ветку? - PullRequest
67 голосов
/ 19 мая 2011

Есть ли способ настройки для этого без указания какой ветви?

Ответы [ 5 ]

64 голосов
/ 19 мая 2011

Git уже тянет только текущую ветку. Если у вас есть ветвь, настроенная как ветвь отслеживания, вам не нужно указывать удаленную ветвь. git branch --set-upstream localbranch reponame/remotebranch установит отношения отслеживания. Затем вы выдаете git pull [--rebase], и только эта ветвь будет обновлена.

Конечно, все удаленные ветви отслеживания и все ссылки для удаленного будут обновлены, но будут изменены только ваши локальные ветви отслеживания.

47 голосов
/ 28 апреля 2014

Я просто сделал это следующим образом:

git pull origin "$(git branch | grep -E '^\* ' | sed 's/^\* //g')"

или

git pull origin $(git rev-parse --abbrev-ref HEAD)

Это извлекает текущую ветку из git branch и извлекает эту ветку из удаленного источника.

Обратите внимание, что, как сказал Сет Робертсон, когда аргументы не заданы, изменяется только текущая ветвь, но выбираются все удаленные ветки.Я не хочу получать все удаленные ветки, поэтому я сделал это так.

16 голосов
/ 09 февраля 2015

ОБНОВЛЕНИЕ

Старый ответ, который я добавил, больше не работает: /.Но после того, как я получил некоторые отзывы о версии PUSH, которую я разместил, для меня это означает, что этот ответ действительно помогает кому-то, заканчивающему приходить сюда из поисковых систем, поэтому я сохраню этот ответ.для новой версии git:

$ git config --global push.default current
3 голосов
/ 24 октября 2015

Да, есть конфигурация, которую можно изменить в .gitconfig, например:

[push]
  default = current

, который подтолкнет текущую ветку к обновлению ветви с тем же именем на принимающей стороне.

Проверить по:

git config --global --get push.default

См .: git-config .

3 голосов
/ 10 июля 2015

Флаг --set-upstream устарел и будет удален. Следовательно, используйте --track или --set-upstream-to

Пример: Если вы хотите установить информацию об отслеживании для этой ветки, вы можете сделать это с помощью:

git branch --set-upstream-to=<remote>/<branch> develop
...