git 拉取分支切换分支

时间:2024-03-06 07:43:54
(1)git checkout -b 本地分支名 origin/远程分支名

(2)git checkout --track origin/远程分支名 (这种写法是上面的简化版,效果完全一样)

(3)git checkout -t origin/远程分支名(这种写法是2的简化版)

(4)fetch指定的一个分支:git fetch [repo] [remote_branch_name]:[local_branch_name]

    git checkout [local_branch_name] (第一行的:[local_branch_name]如果不写,则本地新建的分支名默认与远程分支名相同)

(5)git fetch 获取远程所有分支  (一般用这个)

    git branch -r 可以看到所有远程分支,假设有一个分支叫origin/mybranch

    git checkout mybranch即可,会在本地新建一个同名分支,并与该远程分支关联

   (git checkout origin/mybranch 会进入detached head状态,不会在本地新建分支,不要这样写)

将远程git仓库里的指定分支拉取到本地(本地不存在的分支)

当我想从远程仓库里拉取一条本地不存在的分支时:

git checkout -b 本地分支名 origin/远程分支名

例如: 切换远程分支

git checkout -b  release origin/release-9.4

一、查看本地已有的分支

进入到项目根目录,打开命令行/终端,输入指令,将会显示该项目的本地的全部分支,其中、当前分支的前面有*号。

git branch

二、本地检出一个新的分支并推送到远程仓库

(一).创建本地分支

git checkout -b 新分支名

执行该指令后,会在本地创建一个新分支,该分支是从当前分支上检出的,所以所有文件内容都和当前分支一模一样,这是正常的。创建成功后,将自动切换至新分支上。

 

比如我要创建一个名为dev1的新分支:

此时,再执行git branch查看当前本地所有分支,就会看到两个分支:master与dev1.

(二).推送本地分支到远程仓库

git push --set-upstream origin 分支名

例如,我要把上一步创建的本地dev1推送到远程仓库:

 

三、将远程git仓库里的指定分支拉取到本地(本地不存在的分支)

当我想从远程仓库里拉取一条本地不存在的分支时:

git checkout -b 本地分支名 origin/远程分支名

这个将会自动创建一个新的本地分支,并与指定的远程分支关联起来。

例如远程仓库里有个分支dev2,我本地没有该分支,我要把dev2拉到我本地:

若成功,将会在本地创建新分支dev2,并自动切到dev2上。

 

如果出现提示:

fatal: Cannot update paths and switch to branch \'dev2\' at the same time.
Did you intend to checkout \'origin/dev2\' which can not be resolved as commit?

表示拉取不成功。我们需要先执行

git fetch

然后再执行

git checkout -b 本地分支名 origin/远程分支名