1 回答

TA貢獻1836條經(jīng)驗 獲得超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
添加回答
舉報