【发布时间】:2020-02-11 12:58:40
【问题描述】:
目标
我只想推送与本地 master 不同的分支。更具体地说,如果分支指向与本地 master 相同的提交,我不想推送它。
背景
我的公司有数百个 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