说道git肯定就会用到GitHub。GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。
GitHub属于分布式开发,多人协同操作,并且可以互不影响。
那今天我就就来用git指令实现分支的操作,并且看看相互之间的分支是怎样不互相影响的
今天我们就来举一个例子,就是现在公司里的程序员们一起搞了一个注册登录页面,然而呢,boss为了抢占市场,第一个让客户们看到他的内容,就直接发布了,这样主分支上就有了注册登录内容
然后boss就让程序猿们继续更新内容
技术老大给我说:豌豆你写家电的内容吧
豌豆说:好的,老大,豌豆创建了一个家电的分支
然后日夜更替,风云变幻,豌豆就在电脑前,啪啪的敲代码,终于完成一半了,这个时候boss突然来了
boss说:豌豆,注册和登录页面有了bug,你赶紧先写一下这个。
哇哦,苍天,谁来拯救豌豆呀
豌豆默默的说:好的,马上写,然后豌豆就默默的创建了一个bug分支
然后日夜更替,风云变幻,豌豆又继续在电脑前,啪啪的敲代码,终于完成了bug的文件编写
然而这一切并没有结束,豌豆喝了一口咖啡,看了一眼天空想起来,默默的继续写起了家电的内容
未完待续……..
好啦故事讲完了,大家以为我在讲故事吗?
nono
绝对不可能,只是想给大家看下面的代码做一个铺垫,这样理解git的分支会更好理解一些
ok,还有一张图,帮助大家理解一下分支和主分支
1:我们做的这是一个购物网站,就简称为shopping吧,
那我们现在在当前文件夹下创建一个shopping文件夹吧
指令:mkdir shopping
那我们本地就有一个shopping的文件夹了
2:我们现在就在shopping文件夹下来写我们这个项目的内容了,既然我们想要在shopping文件夹内写文件,那我们先进入shopping文件夹里面
指令:cd shopping
从图中就可以看出来原来我们在11.1文件夹下,现在我们就进入到11.1文件夹下的shopping中了
3:初始化,为shopping创建一个.git隐藏的小库
指令:git init
4:前期的准备工作终于做好了,现在就要开始我们这个项目了,刚才在故事中说道准备上线的时候,我们写了登录和注册页面,为了简化名称,我们就叫给这个文件起名为:login.txt。当然真正的项目中肯定不会用txt的文件来写登录的,不过其他的文件也是同样的操作,这边用txt文件操作起来更方便,后面所有创建的文件也都用txt文件进行操作
指令:touch login.txt
在shopping中就有了login.txt文件
5:在login.txt文件中写上登录和注册的内容,然后提交到本地主仓库
指令:vi login.txt
进入编辑页面,英文状态下按下a,然后进行编辑
指令:git add login.txt提交到暂存区
指令:git commit -m 登录和注册页面完成。把文件提交到本地主仓库
6:现在技术老大让我开始做家电的内容了,我就创建一个家电的分支,然后在家电分支中创建一个jiadian.txt,在jiadian.txt中写上家电的内容,并且上传到本地主仓库
指令:git branch jiadian (创建了一个家电分支)
指令:git checkout jiadian (进入家电分支下)
**指令:touch jiadian.txt
指令:git add jiadian.txt
指令:git commit -m 家电的内容**
这几条运行成功后代表,在家电分支下创建的家电内容已经提交到主仓库啦
注:在创建分支时,主分支上的内容,家电分支会原本的继承下来
现在还在家电分支下,接下来我们来看看文件夹里的内容
一个是继承了主分支的login.txt还有自己创建的jiadian.txt
7:在家电写到一半的是,boss来了,交给我登录注册的bug问题,那怎么办?
我现在就不能在家电分支下面继续写内容了,我需要切换回主分支,然后创建一个bug分支,在bug分支下面写一个bug.txt文件,然后上传到服务器
Git的优势就体现出来了,虽然我写了家电分支上的内容,但是我并没有把分支合并过来,所以主分支上的内容还是login.txt那个文件。
我在创建bug分支的时候,我会继承master主分支上的内容,也就是注册和登录页面的内容,但是不会继承家电的内容,两个分支之间不会相互影响
ok,说这么多,还是继续操作指令吧
指令:git checkout master (切回到master主分支上)
**指令:git branch bug (创建bug分支)
指令:git checkout bug (切换到bug分支)**
**指令:touch bug.txt
指令:git add bug.txt
指令:git commit -m bug文件的内容**
把bug.txt文件提交到服务器后,我们在文件夹里面看下,有两个文件
8:从上面的内容我们就能能看到,继承了主分支的内容,好啦,所有的内容我们都写完了,现在再回到主分支上,看看主分支上有什么文件
指令:git checkout master
主分支上还是只有login.txt的文件,这就代表我们从主分支分出去的分支的内容都不会影响主分支上的内容
ok,搞了这么久,终于把boss的内容和技术老大说的内容弄完了,不过故事还没有结束,接下来,我们就会把分支上的内容合并到我们的主分支上,今天就写到这里吧,一休哥,休息休息,想了解接下来的内容看看下一篇吧。O(∩_∩)O哈哈~
**稍等,还有一个注意事项:
1:在开辟新分支的时候需要注意,首先需要用git init初始化库,再有一个就是主分支上要有有效文件,不然会报错(fatal:not a valid object name :’master’;)
2:在切换分支的时候一定要先确定,之前对该分支内的文件进行操作(add commit)后是否提交到了本地主仓库,如果没有,是无法进行分支切换的**