Git是一个分布式的版本控制系统,简单来说就是能够将你项目每个版本进行保存,便于回溯与整合。这比起自己经常手动复制整个项目来达到保存各个时期的资料要优雅的多。Git还能进行远程协作,便于团队合作,加速开发整合速度。
在平时项目中是不是会遇到下面的这些烦恼呢?
开发了一个稳定的项目之后,想要再开发个小功能,就得再复制一个新的项目来开发,以免突然严重Bug而不能回溯版本。如果此时你的小伙伴修改了你当前版本的部分代码,此时发给你的话又是一个新的项目。最最难定的就是,你跟你的小伙伴同时在一个版本上进行开发,且开发的内容互不兼容,那么项目的整合将会变得非常困难。
由此可见Git在本地的版本管理和协作开发上有极大的优势,那么接下来就来学习一下Git命令吧!
本地管理
1、commit(提交)
git commit
创建了一次本地的提交记录,看看以下的版本树会发生什么吧,很明显可以看到master从版本C1到版本C2
2、branch(分支)
分支的能使你不一定要在master上工作,可以先新建一个功能分支,将功能写完之后再合并到master上。在实际开发中要早建分支,多建分支!
git branch newImage
git commit
创建了一个名为newImage的分支,并提交一次。可以看到多了一个newImage的标签,但是提交之后不是newImage改变,而是master改变了,这是因为当前还没有切换到newImage分支上,所以当前的操作还是针对于master。
3、checkout(查看)
checkout能切换当前操作的分支。
git checkout newImage
git commit
在有newImage分支的基础上切换了当前操作分支,并且提交了一次。
4、merge(合并)
那既然有分支,那就肯定有合并,才能将不同的代码整合在一起。
git merge bugFix
当前有bugFix和master两个分支,那么执行完代码后会把bugFix合并进master中。当然在这过程中如果代码有冲突,则会要求你进行选择,合并两份代码或者保留其中一份代码。
5、rebase(变基)
变基就是修改当前分支的祖先节点,将复杂的版本树变成一条线性的历史。
git rebase master
此操作相当于直接把bugFix复制了一遍,移动到了master的分支上,这样就能得到线性的历史了。而且该命令会找到当前分支和目标分支的共同祖先结点,再移动分支,再看下面的例子会清晰一点。
当前分支是bugFix,目标分支是master,他们的共同祖先结点是C1,所以bugFix的整条分支(C3-C4)都会被移动到master分支下。
目前就先更新到这里,有空再来填坑,想继续学的话可以看↓↓↓
偶然间发现了一个很全面的git命令学习网站,他采用了关卡任务式的学习方式,通过一关关的要求来让你快速学习git的各种命令
直通车 → Git学习网址
这个网址如果电脑上不去可以切换手机流量进入
下面是网址概览
1. 通过关卡让用户快速学会命令
2.左边是命令输入框,右边是图形化及时反馈界面,可以更直观的看到命令是否符合自己的预期
3. 每通过一关都会进行指令的统计,命令是否是最小化的
大概就是如上几点,心动的同学可以赶紧去体验哦