0

目標

ローカル マスターと異なる場合にのみブランチをプッシュしたいと考えています。より具体的には、ブランチがローカル マスターと同じコミットを指している場合、ブランチをプッシュしたくありません。

バックグラウンド

私の会社には何百もの git リポジトリがあり、git サブモジュールは使用していないため、システム全体のクリーンアップには非常に単純な bash スクリプトを使用しています。

for gitdir in `find ./ -name .git|sort`;
    do 
        workdir=${gitdir%/*}; 
        cd $workdir
        eval "$*"
        cd $BASE_DIR
    done

私はこのように実行します:

./for_each_repo.sh 'git checkout -b <bname> && <some command> && git commit -m <message>''

次に、リポジトリに他の変更を加えるかもしれません。

最後に、次を実行します。

./for_each_repo.sh 'git push origin <bname>'

しかし、彼は、明らかに...、「空の」ブランチもプッシュします(つまり、ブランチを作成したばかりでコミットしていない場所)。

4

1 に答える 1