问题出现背景
需要把一个Gerrit上的repo代码仓全部push到新Gerrit中,并且分支保持不变,在执行
repo forall -r '^((?!git-repo).)+$' -c 'git push ssh://sm3veb@10.203.71.3:29418/gminfo/$REPO_PROJECT \
"refs/heads/my23q_share_patac:refs/heads/my23q_share_patac" --force'
后出现报错
报错出现原因
由于本地代码使用repo sync同步下来的,代码仓中没有代码分支,使用git branch查看也是没有的,所以执行git push它找不到本地的my23q_share_patac分支,导致报错。
解决方案
给本地所有仓都加上本地分支,命令:
repo start my23q_share_patac --all
然后在执行
repo forall -r '^((?!git-repo).)+$' -c 'git push ssh://sm3veb@10.203.71.3:29418/gminfo/$REPO_PROJECT \
"refs/heads/my23q_share_patac:refs/heads/my23q_share_patac" --force'
就可以了