我想在脚本中查看远程git分支的最新状态,以进行一些集成测试。
程序员可以在两次运行之间更改分支名称。我想git不要每次都完全克隆整个存储库,以免损失太多时间。
由于脚本在现有仓库上定期运行,因此分支可以在本地存在。
我很难掌握正确的命令。当删除远程(不相关的分支)时,下面的解决方案无法拉动。
if cd $builddir ;
then git fetch origin $gitbranch && git checkout --track $gitbranch ; git pull
else git clone --branch $gitbranch $gitrepo $builddir;
fi
这有一个优雅的解决方案吗?我在Centos 6.5上使用git 1.7.1。
答案 0 :(得分:1)
考虑到较旧的脚本实例可以检出现在已在远程端删除的分支,我会先删除any local config branch setting:
git config --remove-section branch.old_branch
(您可iterate on all local branches,with,for instance, a for-each
)
然后,我会尝试获取/克隆
这样可以避免错误消息:
Your configuration specifies to rebase against the ref '`old_branch`' from the remote, but no such ref was fetched.
答案 1 :(得分:1)
您可以尝试删除陈旧的远程引用:
git remote prune origin