Как вы можете вытащить только текущую ветку?


есть ли способ настройки конфигурации, чтобы установить это без указания какой ветви?

5 58

5 ответов:

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

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

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

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

или

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

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

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

попробуйте это для новой версии git:

$ git config --global push.default current

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

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

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

Да, есть конфиг, который можно изменить в .gitconfig, например:

[push]
  default = current

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

проверка:

git config --global --get push.default

посмотреть: git-config.