1 回答

TA贡献1836条经验 获得超5个赞
您不必要求 git 同步完整的存储库历史记录,它通常是最方便且便宜的,可以在您在那里的时候完成。在比较它们之前尝试让 svn 和 git 做同样的事情。 svn up只关心当前的提示,对其余的根本不做任何检查。
$ time git ls-remote git://github.com/torvalds/linux refs/heads/master
6e8ba0098e241a5425f7aa6d950a5a00c44c9781 refs/heads/master
real 0m0.536s
user 0m0.004s
sys 0m0.007s
$
毫不奇怪,使用 svn 和 git 检查单个远程提示所花费的时间大致相同。
您当前分支的简称是git symbolic-ref -q --short HEAD(否则您不在分支上)。
所以你的 svn up 正在做的更接近的等价物是
if branch=`git symbolic-ref -q --short HEAD` &&
remote=`git config branch.$branch.remote` &&
merge=`git config branch.$branch.merge` &&
upstreamtip=`git ls-remote $remote $merge | cut -f1` &&
test $upstreamtip != `git rev-parse @{u}`
then git pull $remote $merge
fi
添加回答
举报