Git跨仓库操作:克隆私有仓库后如何拉取公共仓库dev分支
问题原因
克隆私有仓库时,Git会自动将克隆来源地址绑定为默认的origin远端,所以执行git remote add origin 公库地址时必然报重名错误。后续执行git fetch origin dev时请求打到私有站点,本质是origin始终指向你的私有Git地址,根本没有关联到GitHub公共仓库。
正确操作流程
全程不需要删除原有私有仓库的远端配置,给公共仓库单独配置独立别名即可,两边推拉互不影响:
- 进入本地仓库目录,先确认现有远端配置,验证origin绑定的是私有站点地址:
git remote -v
- 给GitHub公共仓库添加单独的远端别名,惯例用
upstream指代上游公共仓库:
git remote add upstream https://github.com/对应公共仓库路径
- 从公共仓库拉取dev分支代码,此时请求会直接发往GitHub,不会弹出私有站点的账号校验:
git fetch upstream dev
- 如果需要把拉取到的公库dev分支代码合并到当前本地的b1分支,执行:
git merge upstream/dev
补充说明
- 如果之前误操作修改过origin的指向,执行
git remote set-url origin https://private_git.com/my_repo即可重置为私有站点地址,无需重新克隆仓库。 - 后续日常操作:推送代码到私有站点继续用
git push origin 本地分支名,同步公共仓库最新代码用git fetch upstream即可,两个远端配置完全独立。
内容的提问来源于stack exchange,提问作者mahmood
相关产品推荐
相关产品推荐

