我在电脑上有多个本地分支,没有远程分支。
我想将所有没有追踪远程的本地分支(我有多个远程,例如origin
和upstream
)推送到同一个远程的URL上(例如备份),以进行备份。
如何实现这一点?
可以使用直接的Git命令或Bash脚本来列出没有远程分支(我有多个远程名称),并对它们进行迭代,将它们推送到同一个远程。
也许我的问题更适合于bash脚本。
需要结合列出所有没有远程分支的本地分支并对它们进行迭代。
#!/bin/bash
while IFS= read -r aBranch ; do {
echo "Push ${aBranch} to backup";
git push backup "${aBranch}"
};
done < <(git branch --format '%(refname:short) %(upstream:short)' | awk '{if (!$2) print $1;}');
unset aBranch ;
IFS
,使用while read branch; do ... done < <(git branch --format '%(refname:short) %(upstream:short)'...)
更简单。 - Eugene
git push <myremote> <mybranch>
。例如,git push origin branch1
。您能解释一下难点在哪里吗? - mattgit push --all -u
命令吗? - Ionuț G. Stangit branch -v -v
的输出,例如git branch -v -v | grep -v '\[[a-z]*/'
对于我来说有效,因为我的远程匹配[a-z]*
。这不是一个好的脚本解决方案,但对于一次性的任务,这就是我的解决方法。 - joanis