仅当分支与主分支不同时,如何推送分支?

问题描述 投票:0回答:1

目标

仅当分支与本地主节点不同时,我才想推送分支。更具体地说,如果分支指向与本地主节点相同的提交,我不想推送分支。

背景

我的公司有数百个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>'

但是,显然,他也推“空”分支(即我刚刚创建分支但未提交的分支)。

git git-push multiple-repositories
1个回答
0
投票

第一,

git for-each-ref --no-merged=master refs/heads

将列出所有具有新提交(尚未合并到master中的分支)的分支。

然后,您可以将其链接到您的推送命令

git push origin $(git for-each-ref --no-merged=master refs/heads)
© www.soinside.com 2019 - 2024. All rights reserved.