git就是代码库,那么若是你要问什么是代码库?你能够想一下数据库~数据库是放数据的,代码库天然是放代码的。。
~具体为何要学这玩意儿,由于上手以后确实很好用,我目前的测试代码均用git在管理,并且目前国内不少公司也已经在使用git了,要是在互联网界不会git,那么你可能已经out了~mysql
首先,搭建git环境,我本身是用mac的~因此只能介绍一下mac的,mac么,原本就预装了git…基本不用搭,而后去git库搞一个SSH,就能够在终端敲命令行了,若是你仍是要装一下git的环境,那么我推荐用homwbrew装吧,mac环境管理的神器,个人mysql,sqllite,gradle等等都用他装,很是好用,有兴趣能够装一个好好了解一下,用它装git也是很是简单的,直接brew install git,成功后就能够直接使用了git
装好了git,你须要一个git库来练手,我推荐github,嗯,就是颇有名的github,去申请个帐号吧,而后跟着步骤去搞一个SSHgithub
通常来讲,先要创建关联,最简单的办法就是,经过终端进入你想要放代码的根目录,而后输入:sql
git clone ssh连接
ssh连接的代码库就会立刻克隆到你终端所在的目录,并且与远程的git代码库创建关联。数据库
若是有人在远程库提交了代码,那么你可能须要同步到本地,怎么作呢?输入:ssh
git pull
这个命令会将远程代码的分支名同步到本地,并且会将当前所处分支的代码同步到和远程一致。ok,可能有人要问什么是分支了,那么如今将一下什么是分支。测试
若是你是个新手,刚新建了一个崭新的代码库,那么你必定看到过master这个东西,ok,它就是你的master分支。能够尝试输入:gradle
git branch
此时,应该会输出一个master,那么它就是你的master分支了。spa
咱们代码库一般都要面对多我的同时开发多个功能,那么假设你们都在一个分支上工做,若是有一我的提交了不稳定的代码到了这个分支上,那么这份代码发布到测试环境后将会变的极不稳定,若是此时有一个线上的bug要立刻修复而且发布,就没法避免的要把这份有问题的代码发布上去,那就会让事情变的更严重,总之,这种事是很是痛苦的。那么如何解决呢?答案是:开分支。
每一个分支上的代码是不一样的,通常来讲,每一个新功能都会开出一个独立的分支去开发,好比我要作一个email功能,ok我就会去从最稳定的线上代码A分支开出一个独立的分支去作这件事,当这个功能相对稳定后,我会将代码合并到分支B,有些依赖email分支的功能就能够一块儿作一些联调之类的事情了,直到没问题后才能合并到稳定分支A。那么这里的分支A通常来讲就是master了,分支B通常来讲就是dev分支了。下面说一下如何开分支命令行
开分支很简单,好比我如今须要在master上开一个分支出来作一些开发,那么首先切换到master分支上,输入:
git checkout mater
而后若是看到有这样的提示:
Switched to branch 'master' Your branch is behind 'origin/master' by 19 commits, and can be fast-forwarded. (use "git pull" to update your local branch)
那么说明切换到master成功,可是远程的master有19个提交,此时你须要输入一下git pull来把远程代码拉取到本地,再次输入:
git pull
若是你切换分支看到的是:
Switched to branch 'master' Your branch is up-to-date with 'origin/master'.
那么说明你与远程的master分支代码一致,不须要拉取代码。
ok,如今咱们来开分支。好比咱们如今要开一个叫dev的分支,那么输入:
git checkout -b dev
此时的输出应该是:
Switched to a new branch 'dev'
此时你就切换到dev分支了,能够输入:
git branch
你应该能够看到master和dev两个分支,在dev的前面有个*号,表示当前所处的分支。你能够经过命令来切换分支:
git checkout master
就能够将分支切换到master,能够经过git branch来查看。
此时咱们的dev分支只是一个本地分支,在远程仓库看,尚未dev分支,那么要如何将dev分支推送到远程呢?请先将分支切换到dev,而后输入命令:
git push origin dev
而后去远程仓库查看,就能够看到远程也有一个dev分支了。在git中,origin每每表明远程仓库。
如今将分支停留在dev上,而后新建一个文件,或者随意改动一些代码。查看一下当前分支的状态,命令为:
git status
此时会输出当前分支的状态,你能够看到刚才改动的文件列表出现了。咱们如今须要讲它提交到dev上
首先,加入这些文件到准备提交区域,命令为:
git add --all
将所有文件加入到备提交状态,而后输入:
git commit -m "提交日志信息,输入本次提交的大体内容便可"
此时提交的内容就已经提交到了本地的dev分支中,而后咱们可能须要将它提交到远程dev仓库,输入命令:
git push
此时就会将代码提交到远程的dev分支了。
这时候若是咱们将代码切换到master,会发现根本看不到刚才dev作出的修改,这就是分支的好处之一了。若是此时须要将dev分支的代码合并到master,那么请先将分支切换到master,而后输入命令:
git merge dev
就能够将dev的代码合并到master,此时再看刚才dev作的修改,就能够看到咯。
好吧,刚才的合并是有点随意了,把不应合到master的东西也合进来了。悲剧啊,那怎么办?回退~
如何回退呢,须要先查看一下日志:
git log
咱们能够看一下提交日志,你会发现每一个提交都有一个commit id,好比:
commit b3204f1dc2f7d57042cdd67c1dda2a0f9549c864
这个就是提交号了,找到咱们须要回退到的提交号,而后输入:
git reset --hard b3204f1dc2f7d57042cdd67c1dda2a0f9549c864
就会将代码回退到此次提交的状态
经常使用的就先讲这么多了~剩下的下回分解