git fetch 列如远程服务器存在某个分支,在本地git中不存在该分支,可以使用git fetch进行关联
例如下面的命令
git fetch origin online git checkout online
git pull 操作就可以从远程库中获取某个分支的更新,再与本地指定的分支进行自动merge(即使本地不存在这个分支)
完整格式是:
$ git pull <远程库名> <远程分支名>:<本地分支名>
比如,取回远程库中的online分支,与本地的online分支进行merge,要写成:
git pull origin online:online
如果是要与本地当前分支merge,则冒号后面的<本地分支名>可以不写
git pull origin online
通常,git会将本地库分支与远程分支之间建立一种追踪关系。比如,在git clone的时候,所有本地分支默认与远程库的同名分支建立追踪关系。也就是说,本地的master分支自动追踪origin/master分支。因此,如果当前处于本地online分支上,并且本地online分支与远程的online分支有追踪关系,那么远程的分支名可以省略:
比如,取回远程库中的online分支,与本地的online分支进行merge,要写成:
git pull origin
其实,git pull 命令等同于先做了git fetch ,再做了git merge。即:
git fetch origin online git checkout online git merge origin/online
造成我的错误在于我本地使用checkout -b online 是创建的新onlne分支,而与服务器online根本不算是同一个分支,所以要从服务端拉取,切记吧
查看所有远程分支
git branch -r
1
查看所有分支,包括本地分支和远程库中的分支
git branch -a
1
拉取远分支,并创建本地分支
查看远程有什么分支之后可以拉取远分支,并创建本地分支,本地分支指向远程的某个分支
git fetch origin 远程分支:本地分支
1
(拉取远程分支mast_1,并创建本地分支addtest,不切换分支)
使用该方式会在本地新建分支,但是不会切换到该本地分支,需要手动checkout切换。
采用此种方法建立的本地分支不会和远程分支建立映射关系。
拉取远程分支,创建切换到本地分支
git checkout -b 本地分支 origin/远程分支
1
拉取远程分支fan,创建切换到本地分支brantest
使用该方式会在本地新建分支,并自动切换到该本地分支。
采用此种方法建立的本地分支会和远程分支建立映射关系。
关于映射的说明:
查看本地分支和远程分支的映射关系
git branch -vv
1
可以看见之前的addtest分支并没有映射到远程分支(映射信息显示为下图中的蓝色文本信息中)
建立两个分支的映射
(将当前分支映射到远程的指定分支,注意切换到当前分支)
git branch -u origin/远程分支
1
注意:本地分支和远程分支建立映射时,两个名字不一定要一样,可以看下图的brantes分支和远程的origin主机中的mast_1分支.
此时可以把本地分支brantest提交到远程分支mast_1分支中去
---------------------
作者:In_new
来源:CSDN
原文:https://blog.csdn.net/qq_38663729/article/details/80521970
版权声明:本文为博主原创文章,转载请附上博文链接!