Как перебрать все ветки git, используя скрипт bash - PullRequest
90 голосов
/ 02 октября 2010

Как я могу перебрать все локальные ветки в моем репозитории, используя скрипт bash.Мне нужно повторить и проверить, есть ли разница между веткой и некоторыми удаленными ветвями.Например,

for branch in $(git branch); 
do
    git log --oneline $branch ^remotes/origin/master;
done

Мне нужно сделать что-то, как указано выше, но проблема, с которой я сталкиваюсь, заключается в том, что $ (ветка git) дает мне папки внутри папки хранилища вместе с ветками, присутствующими в хранилище.1004 *

Это правильный способ решить эту проблему?Или есть другой способ сделать это?

Спасибо

Ответы [ 11 ]

0 голосов
/ 07 марта 2019

Если вы находитесь в этом состоянии:

git branch -a

* master

  remotes/origin/HEAD -> origin/master

  remotes/origin/branch1

  remotes/origin/branch2

  remotes/origin/branch3

  remotes/origin/master

И вы запускаете этот код:

git branch -a | grep remotes/origin/*

for BRANCH in `git branch -a | grep remotes/origin/*` ;

do
    A="$(cut -d'/' -f3 <<<"$BRANCH")"
    echo $A

done        

Вы получите этот результат:

branch1

branch2

branch3

master
...