从bundle克隆的本地仓库如何拉取远程master分支更新?
Git Bundle克隆后无法拉取更新的解决办法
为啥会出现「Already Up to Date」?
用git bundle克隆出来的本地仓库,默认不会自动关联对方的原始远程仓库,也没法直接感知对方本地修复后的代码更新——要么是你的本地master没配置追踪正确的远程分支,要么是根本没把对方的仓库设为远程源。
分场景解决
情况1:对方把修复后的代码推到了远程仓库(比如GitHub、公司Git服务器)
先把远程仓库地址加到本地:
如果本地还没关联远程,执行:git remote add origin <远程仓库的URL地址>要是已经有origin但地址不对,就改成:
git remote set-url origin <正确的远程URL>拉取远程master的更新:
切到本地master分支后,直接拉取合并:git checkout master git pull origin master或者分开执行fetch+merge更稳妥(避免冲突时不知所措):
git fetch origin git checkout master git merge origin/master
情况2:对方是本地修复后生成了新的Git Bundle文件
这种情况直接从新bundle导入更新就行:
- 先切到本地master分支:
git checkout master - 直接拉取bundle里的master更新:
比如bundle在当前目录叫git pull <新bundle文件的路径> masterfix-update.bundle,就写:
要是担心合并出问题,也可以先拉到临时分支再合并:git pull ./fix-update.bundle mastergit fetch ./fix-update.bundle master:temp-fix-branch git merge temp-fix-branch git branch -d temp-fix-branch
额外排查:检查分支追踪关系
如果已经加了远程但还是提示已更新,先看看本地master有没有追踪远程的master:
git branch -vv
输出里如果master后面没跟着origin/master,就手动设置追踪:
git branch --set-upstream-to=origin/master master
之后再跑git pull就能正常拉取了。
内容的提问来源于stack exchange,提问作者Kaisin Li
相关产品推荐
相关产品推荐

