git - 切换到哪个分支,本地就下载了哪个分支的代码嘛?
为情所困
为情所困 2017-05-02 09:33:50
[Git讨论组]

切换到哪个分支,本地就下载了哪个分支的代码嘛?

为情所困
为情所困

全部回复(6)
PHPz

如果是大家一起协作的情况,可能其他人推了其他分支到中央仓库,这时候你本地是看不到的。
比如原来只有master分支,另外一个人推送了f1分支。
这时候在你的本地,

λ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

直接执行切换分支到f1

λ git checkout f1
error: pathspec 'f1' did not match any file(s) known to git.

当然是不行的啦。
那么应该怎么做呢?

你可以把中央的分支信息取下来

λ git fetch origin
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://git.coding.net/xxx/xxx
 * [new branch]      f1         -> origin/f1

λ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/f1
  remotes/origin/master

这样你就能愉快地切换分支了

λ git checkout f1
Branch f1 set up to track remote branch f1 from origin.
Switched to a new branch 'f1'

此时你已经在f1分支了,

λ git branch -a
* f1
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/f1
  remotes/origin/master

*在前面表示本地当前所指向的分支。

PHPz

好象是的,你可以切一下

某草草

具体代码是怎么存储的不确定,没研究过。但是切换这个功能,应该不是下载全部代码。应该是先检测本地代码,然后把本地没有的代码下载下来,本地有的代码不下载。如果你细心观察,一个项目的代码量大的时候,你初次克隆需要好多时间,但是切换分支则速度快很多。虽然代码和分支保持一致,但是感觉并不是每次都重新下载所有代码。

某草草

除非你本地是最新的,如果不是还是需要你自己执行git pull origin 分支才可以同步到对应分支下最新版本的

伊谢尔伦

本地有所有的分支代码啊,每个人的仓库都是对各个分支版本的clone,完全一样的,要不怎么叫clone呢。

ringa_lee

切换完分支后,需要从服务器拉去最新代码

git pull origin xxx分支名称
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号