对于我建议您运行的任何脚本,隐藏或提交所有更改都是明智的。
我需要将多个分支从一个远程服务器推到另一个远程服务器。这些答案要求本地分支机构以前存在
SRC_R=origin1
DEST_R=origin2
for cbranch in $(git branch -r | grep $SRC_R | cut -d '/' -f2,3,4,5 | cut -d ' ' -f1)
do
git checkout $cbranch
git push $DEST_R $cbranch
done
只需将origin1更改为源远程,并将origin2更改为目标远程。将其复制到“ remoteBranchCloner.sh”,然后使用“ sh callBranchCloner.sh”进行调用。
也许有更好的方法,那就是不进行多次推送。
如果使用我的代码,则可能要使用凭据缓存,否则,必须输入凭据服务器时间。
对于Windows:
注意:该脚本适用于linux。如果您在“ git bash”中运行该脚本,则该脚本可以运行,但是如果未安装一些特殊功能,则无法从本机控制台运行该脚本。
git config [--global] credential.helper wincred
对于Linux
git config [--global] credential.helper cache
其中[--global]表示可以选择添加--global
如果要为所有分支设置到新远程的远程跟踪:
DEST_R=remotename
for cbranch in `git branch`
do
git checkout $cbranch
git branch -u guru/$cbranch
done
存储为.sh文件并与“ sh filename.sh”一起运行时,会将所有上游设置为跟踪远程“ remotename”