У меня есть несколько локальных клонов удаленного репо.Работая в одном из них, я обновляю несколько веток и нажимаю на удаленный.Затем я перехожу к другому клону и хочу получить и обновить мои пульты, кэшированные здесь, в этом другом локальном репозитории.
У меня есть процедура, которая работает нормально, но выполняется вручную.Вот пример.Сначала, работая в первом локальном репозитории клонов, я делаю некоторые изменения в branch1, branch2 и branch3, затем нажимаю.Затем, в другом локальном клоне того же удаленного репо, я хочу обновить его кэшированные копии удаленных репозиториев, поэтому я делаю это ...
$ git fetch
...says remote counting objects, unpacking etc then a series of lines like...
eb7b3000..67f0ade3 mybranch1 -> origin/mybranch1
eb7b3000..67f0ade3 mybranch2 -> origin/mybranch2
eb7b3000..67f0ade3 mybranch3 -> origin/mybranch3
...and usually also some [new tag] lines
Это определяет ветви, которыебыли обновлены «первым» локальным репо, и я приступаю к обновлению каждого по одному, например так ...
$ git fetch origin mybranch1:mybranch1
$ git fetch origin mybranch2:mybranch2
$ git fetch origin mybranch3:mybranch3
Это немного болезненная ручная процедура, но она отлично работает.Кажется, что "git fetch --all" или что-то в этом роде должно делать это, может быть, я упускаю очевидное здесь, но я не могу найти встроенную команду git, которая обновляет эти другие ветви, не проверяя их.Синтаксис mybranch1: mybranch1, описанный выше, кажется, делает это отлично, оставляя меня, где бы я ни был, но гарантируя, что перезагруженный гитк теперь будет показывать правильную информацию для всех удаленных веток, которые были обновлены этой последовательностью выборок.
Я посмотрел на решения bash и one-liner для похожих, но разных проблем, например, здесь: [ Как получить все ветви Git
Эти решения идентифицируют все ветви и решают слегкадругая проблема.Я хочу просто получить и обновить локальные ветви, которые отслеживают ветку репо, если это изменилось, а не захватывать все ветви, включая те, которые я не отслеживаю локально.
Я пытаюсь написать сценарий псевдонима или bash (или разоблачить «очевидный» трюк, который я, возможно, пропустил), чтобы решить это.Я просто хочу иметь возможность вводить один псевдоним или другую команду, которая выполняет git fetch, идентифицирует все ветви, которые были обновлены, а затем выполняет последовательность git fetch origin aaa: aaa и т. Д. Для каждой измененной удаленной ветви.Любая помощь приветствуется.
[В настоящее время используется git cmd line версия 2.17.1.windows.2, будем рады обновить, если в этом проблема]