廖雪峰老师老师的git教程上这样说:
但为什么我操作了之后会变成下面这样呢?
另外对这句命令不太理解,请问廖老师的意思是下面是下面哪一个?或者两种都不是?
1.远程已经存在dev分支,这句命令的意思是,在本地创建 dev 分支并将远程 dev 分支的内容 clone 到本地???
2.远程还没有 dev 分支,这句命令的意思是,在本地及远程同时创建 dev 分支???
刚刚学习git的小白,请大神赐教
迷茫2017-05-02 09:54:22
dev
前面 有origin
分支全名是origin/dev
顾名思义就是远端的dev
分支,checkout -b
就是新建分支,后面跟的是新建的分支名称。
git checkout --help
就可以看到基本信息
巴扎黑2017-05-02 09:54:22
首先,你列出的两个猜测都不是很对。
其实,廖大说的很清楚:
就必须建立远程origin的dev分支到本地
所以你使用那条命令的前提就是远程已存在dev分支。
而那条命令的功能也很简单,就是在建立一个跟踪远程分支的本地分支,即先在本地建一个分支,然后为它设置要跟踪的远程分支,并没有楼主所说的那些多余的操作。
其次呢,我觉得让楼主产生疑惑的是本地出现的这些分支:
这些分支是你和远程进行同步(git push, git fetch, git pull)等操作之后出现的分支,它们就相当于远程分支的引用,通俗的讲,这些位于本地的引用就可以表示远程分支。
而楼主所说的那条命令git checkout -b develop origin develop
的操作就是基于这些引用的,所以即使你的电脑目前处于离线状态(未连接网络),也是可以正常工作的。原因很简单,这个命令所操作的只是远程分支的引用,而这些引用位于本地。
天蓬老师2017-05-02 09:54:22
首先,你的命令git checkout -b develop origin develop
是错误的,因此才会报这样的错误,注意origin和develop之间是要有/
的。因此,正确的命令是git checkout -b develop origin/develop
我对该命令的理解是:本地新建一个分支develop,并切换到新建的分支develop,并且建立develop与远程分支origin/develop的跟踪关系。查看本地分支的跟踪分支(上游分支)命令:git branch -vv
。