Git客户端克隆远程仓库后如果本地想切换到feature/add-info分支工作,直接切换即可。
关于无感切换的操作,说明如下:
在 Git 2.23+ 版本中,新增了 “隐含创建本地分支” 的功能:当你执行 git checkout feature/add-info(或新版的 git switch feature/add-info)时,Git 会先检查:
本地是否有 feature/add-info 分支?(没有)
远程是否有唯一对应的 origin/feature/add-info 分支?(有)
这时 Git 会自动帮你做两件事:
创建本地 feature/add-info 分支;
绑定到远程 origin/feature/add-info 分支(设置 upstream)。
所以你感觉 “直接切换就能用”,其实是 Git 在背后自动完成了分支创建和关联的步骤,简化了操作。
验证这一点:
你可以在克隆后、未切换分支前,先执行 git branch 查看本地分支,会发现只有 master;然后执行 git checkout feature/add-info,再执行 git branch,会看到本地多了 feature/add-info 分支,且 git branch -vv(查看分支关联)会显示它已关联 origin/feature/add-info。
验证实例:
v-g7e6d2@SHL01886 MINGW64 /d/123/my-project (feature/add-info)
$ cd d:/123 #新建文件夹
v-g7e6d2@SHL01886 MINGW64 /d/123
$ git clone git@101.35.151.245:/var/git/my-project.git #克隆仓库
Cloning into 'my-project'...
remote: Enumerating objects: 33, done.
remote: Counting objects: 100% (33/33), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 33 (delta 3), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (33/33), 1.08 MiB | 994.00 KiB/s, done.
Resolving deltas: 100% (3/3), done.
v-g7e6d2@SHL01886 MINGW64 /d/123
$ ls
my-project/ #服务器仓库克隆成功
v-g7e6d2@SHL01886 MINGW64 /d/123
$ cd my-project/
v-g7e6d2@SHL01886 MINGW64 /d/123/my-project (master)
$ git branch #切换分支前本地只有一个分支
- master
v-g7e6d2@SHL01886 MINGW64 /d/123/my-project (master)
$ git checkout feature/add-info #切换到feature/add-inf 分支
branch 'feature/add-info' set up to track 'origin/feature/add-info'.
Switched to a new branch 'feature/add-info'
v-g7e6d2@SHL01886 MINGW64 /d/123/my-project (feature/add-info)
$ git branch #再次查看本地分支
- feature/add-info
master
v-g7e6d2@SHL01886 MINGW64 /d/123/my-project (feature/add-info)
$ git branch -vv #查看本地分支与远程服务器分支对应
- feature/add-info a789c36 [origin/feature/add-info] add test2.txt
master 02598bf [origin/master] 在feture分支给test.txt 新增一行信息
v-g7e6d2@SHL01886 MINGW64 /d/123/my-project (feature/add-info)
$