【发布时间】:2018-10-15 07:10:26
【问题描述】:
我创建了这个 bash 脚本来一次创建所有分支
#!/bin/bash
git fetch -vp
for b in $(git branch -a | grep remotes | grep -v HEAD)
do
branchname=${b##*/}
remote=${b#*/}
command="git branch --track $branchname $remote"
echo "$command"
$($command)
done
但我总是遇到同样的错误:
fatal: 'master' is not a valid branch name.
如果我在没有脚本的情况下运行相同的命令,则它会成功执行。
我做错了什么?
【问题讨论】:
-
您似乎没有本地
master分支。 -
这不是签出一个分支,至少在 Git 中是这样。另外,请阅读I'm trying to put a command in a variable, but the complex cases always fail!。
-
你需要它做什么?通常最好使用远程跟踪分支(如
origin/master)来跟踪远程存储库。 -
我认为知道这是什么来回答这个问题并不相关,但我创建了这个脚本,因为我需要将我的所有分支推送到另一个远程仓库,所以首先我需要创建所有本地分支来自 origina 存储库,然后使用
git push other-repo --mirror推送所有这些 -
@ErikMD 找到了解决方案,我创建了一个要点:gist.github.com/rvillablanca/b69432acb96c043f727d761551e221d2 我从stackoverflow.com/questions/7818927/… 找到了这个