本文旨在帮助没有接触过Git的同窗使用Git以及GitHub的基本功能,适用于初学者。php
因为Git是一门工具,合理的学习过程,应该是先知道怎么用,再去理解仓库、分支、冲突等等概念。所以本文把各类操做按照新手的学习曲线进行编排,方便初学者按部就班。html
因为内容比较多,一次写不完,故作成连载,之后还会更新其它内容。git
推荐阅读:
菜鸟教程 https://www.runoob.com/git/gi...
廖雪峰的Git教程 https://www.liaoxuefeng.com/w...
分支学习神器(强烈推荐) https://learngitbranching.js....
上面的教程学好了,本文就不必看了,哈哈哈
前往:https://git-scm.com/downloads
下载Windows版本,无脑下一步。安装完毕github
如何启动Git?thinkphp
在任何位置右键-Git Bash Here便可在当前目录打开Git。安全
注意:在哪里点击右键,就会在哪一个目录打开。在C盘打开,终端就会显示C盘。服务器
Linux和Mac都内置了Git,直接打开终端便可。ide
注意:切换目录的方法,除了手动输入路径,也能够按下cd 以后,把文件夹直接拖到终端里面,终端直接就能显示路径。thinkphp5
Git最核心的功能是版本控制,不知道什么是版本控制也不要紧,下面列举了几个使用场景:工具
总结成一句话就是:善用Git,能够下降代码被破坏的风险,提升开发效率。
一句话概述,一个普通的文件夹,若是用Git托管,它就是一个代码仓库。
仓库是一个总体,因为Git的托管,仓库里面的代码若是发生了任何变动,均可以被Git记录下来。
有了这种代码追踪,极大的方便了代码的保存、恢复、提交。
仓库分为本地仓库和远程仓库。
本地仓库就是当前电脑上的仓库。远程仓库是团队合做时,服务器上的仓库,在本地和远程仓库之间,能够互相传输数据。
而GitHub就是远程仓库之一,GitHub上面的仓库能够共享给其余人或团队。
此外还有其余的远程仓库软件,甚至能够本身搭建一个仓库服务器。
许多优秀的教程,都在GitHub上提供了示例代码,而且按照教程的章节进行了划分(一节教程对应一节代码)。
借助Git,能够快速切换,保证当前的代码和教程的章节对应。
打开一套包含示例代码的教程,里面会有代码仓库的地址:
好比:https://github.com/yunzhiclub/thinkphp5.0guide
打开这个GitHub项目,里面就是所有的文件了。
如何把它下载到本地呢?
第一个命令: git clone
须要注意的是,命令在哪一个目录执行,代码就会clone到哪里,因此clone前须要先肯定文件夹位置
// 使用方法 // 把远程仓库的代码下载到本地的当前文件夹 git clone <仓库地址> // 示例 git clone https://github.com/yunzhiclub/thinkphp5.0guide.git // 把远程仓库的代码下载到特定的文件夹中 git clone <仓库地址> <本地文件夹的地址> // 示例,克隆到PHP文件夹 git clone https://github.com/yunzhiclub/thinkphp5.0guide.git PHP
出现如下提示,说明clone完成:
文件夹中能够找到全部示例文件:
接下来就能够按照教程学习了。
若是你学到了第二节,而本身代码还在第一节,但你又懒的照着教程敲一遍,怎么办呢?
因为教程的做者已经为代码设置了不少“保存点”,咱们使用git checkout 命令,就能够任意切换这些“保存点”。
使用cd <文件夹名>
命令进入代码文件夹,能够看到出现了git:(master)字样,
此时输入git tag
,会显示做者设置的全部“保存点”:
查看完毕后按q退出
接下来就是切换了,好比我学到了第2.4章,使用
// 切换到某个保存点 git checkout step2.4 // 放弃当前代码,强制切换到某个保存点 git checkout -f step2.4
出现了下图:
说明切换成功,如今你的本地代码就和教程如出一辙了。
因为本部分涉及到分支的概念,初学者很难作到深入理解,所以先提供操做,只要严格按照本文进行操做,就能够顺利进行。
分支,就是字面意思,能够把代码分红几个互不影响的版本,好比,目前有三个如出一辙的分支:master分支,A分支和B分支,如图:
它们的代码都是123。
若是我在A分支上把代码改为456,在B分支上把代码改为789,此时master分支的代码不受任何影响,仍是123。
master做为项目主分支,一个优秀的团队,是不容许直接向master分支提交代码的。
规范的作法是在本身的分支上完成编写,而后向master分支提出合并代码的请求,由负责人进行审核,审核经过以后,会把代码合并到主分支上。
这就是团队开发的基本流程。
既然是团队开发,就须要了解issue。
issue是“事件”的意思,也就是告诉其余成员,“我正在作什么,我想实现什么功能”,当别人看到你的issue后,就知道你正在作这件事,避免两我的写出重复的代码。
一个issue对应一个分支:
好比这个issue的编号是4,咱们就在本地建立4分支:
若是咱们固然在master分支上,输入:
// 建立名称是4的分支 git checkout -b 4
就成功建立了4分支:
以后全部的更改,都在4分支上进行,和主分支没有关系了。
当你的代码写完以后,回到终端,输入:
// 让git记录当前目录的全部文件 git add . // 提交更改到本地仓库,备注信息随便写,好比写“我正在作什么” git commit - m <备注信息> // 将本地的更改推送到GitHub的4分支 git push origin 4
这三条命令,能够把你的代码推送到GitHub上,还差最后一步
最后一步是发起合并请求。
在GitHub网站上新建PullRequest。
compare处填写本身刚刚上传的分支,
base处填写被合并的分支
上图的意思是,把本身的2分支合并到主分支上,主要不要写反!
点击提交后,剩下的就交给负责人审核了。
讲的再多也没用,本身试一试,什么都明白了。
记得去年咱们刚开始作第一个练手的项目时,在Git方面遇到问题。
因为Git涉及到团队协做,若是任何一我的掌握很差,都会影响合做项目的代码安全(好比误删代码、提交了错误的代码,等等)。
出于这个缘由,我提早向硕哥请教GitHub的基本用法,本身学会后再讲给小组的其余成员,所以保证了后来每次代码合并都平稳、安全的进行。
后面的内容会尽快更新。