Git入门——从操做到理论(一)

前言

本文旨在帮助没有接触过Git的同窗使用Git以及GitHub的基本功能,适用于初学者。php

因为Git是一门工具,合理的学习过程,应该是先知道怎么用,再去理解仓库、分支、冲突等等概念。所以本文把各类操做按照新手的学习曲线进行编排,方便初学者按部就班。html

因为内容比较多,一次写不完,故作成连载,之后还会更新其它内容。git

推荐阅读:
菜鸟教程 https://www.runoob.com/git/gi...
廖雪峰的Git教程 https://www.liaoxuefeng.com/w...
分支学习神器(强烈推荐) https://learngitbranching.js....
上面的教程学好了,本文就不必看了,哈哈哈

安装

Windows:

前往:https://git-scm.com/downloads
下载Windows版本,无脑下一步。安装完毕github

如何启动Git?thinkphp

在任何位置右键-Git Bash Here便可在当前目录打开Git。安全

image.png

注意:在哪里点击右键,就会在哪一个目录打开。在C盘打开,终端就会显示C盘。
image.png服务器

Linux & Mac

Linux和Mac都内置了Git,直接打开终端便可。ide

注意:切换目录的方法,除了手动输入路径,也能够按下cd 以后,把文件夹直接拖到终端里面,终端直接就能显示路径。thinkphp5

May-23-2020 13-48-51.gif

Git是干啥用的?

Git最核心的功能是版本控制,不知道什么是版本控制也不要紧,下面列举了几个使用场景:工具

  • 好比你正在编写一个项目,当某个阶段完成以后,只需一键,如今的代码就会保存下来,不管之后怎么更改,都不会破坏当前的代码(相似快照功能)
  • 当与别人合做的时候,只需一键,就能够把本身的代码和其余的代码合并,不再须要手工复制粘贴了
  • 若是你打算尝试几种不一样的方案,使用分支功能,只需一键,就能够把你的代码在不一样方案之间自由切换,不一样方案之间单独开发,相互不影响。
  • 若是代码出现重大错误,只需一键,直接乘坐时光机,回到以前的正常版本,妈妈不再用担忧我把软件写崩啦

总结成一句话就是:善用Git,能够下降代码被破坏的风险,提升开发效率

什么是仓库?什么是GitHub?

一句话概述,一个普通的文件夹,若是用Git托管,它就是一个代码仓库

仓库是一个总体,因为Git的托管,仓库里面的代码若是发生了任何变动,均可以被Git记录下来。

有了这种代码追踪,极大的方便了代码的保存、恢复、提交。

仓库分为本地仓库远程仓库

本地仓库就是当前电脑上的仓库。远程仓库是团队合做时,服务器上的仓库,在本地和远程仓库之间,能够互相传输数据。

而GitHub就是远程仓库之一,GitHub上面的仓库能够共享给其余人或团队。

此外还有其余的远程仓库软件,甚至能够本身搭建一个仓库服务器。

起步:借助Git提升语言学习效率

许多优秀的教程,都在GitHub上提供了示例代码,而且按照教程的章节进行了划分(一节教程对应一节代码)。

借助Git,能够快速切换,保证当前的代码和教程的章节对应。

打开一套包含示例代码的教程,里面会有代码仓库的地址:
好比:https://github.com/yunzhiclub/thinkphp5.0guide

打开这个GitHub项目,里面就是所有的文件了。
image.png

如何把它下载到本地呢?

git clone 把远程仓库代码复制到本地

第一个命令: 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完成:
image.png
文件夹中能够找到全部示例文件:
image.png
接下来就能够按照教程学习了。

git checkout 切换“保存点”

若是你学到了第二节,而本身代码还在第一节,但你又懒的照着教程敲一遍,怎么办呢?

因为教程的做者已经为代码设置了不少“保存点”,咱们使用git checkout 命令,就能够任意切换这些“保存点”。

使用cd <文件夹名>命令进入代码文件夹,能够看到出现了git:(master)字样,
image.png

此时输入git tag,会显示做者设置的全部“保存点”:
image.png

查看完毕后按q退出

接下来就是切换了,好比我学到了第2.4章,使用

// 切换到某个保存点
git checkout step2.4

// 放弃当前代码,强制切换到某个保存点
git checkout -f step2.4

出现了下图:
image.png

说明切换成功,如今你的本地代码就和教程如出一辙了。

使用Git进行合做开发

因为本部分涉及到分支的概念,初学者很难作到深入理解,所以先提供操做,只要严格按照本文进行操做,就能够顺利进行。

简述分支

分支,就是字面意思,能够把代码分红几个互不影响的版本,好比,目前有三个如出一辙的分支:master分支,A分支和B分支,如图:

image.png

它们的代码都是123。

若是我在A分支上把代码改为456,在B分支上把代码改为789,此时master分支的代码不受任何影响,仍是123。

image.png

master做为项目主分支,一个优秀的团队,是不容许直接向master分支提交代码的。

规范的作法是在本身的分支上完成编写,而后向master分支提出合并代码的请求,由负责人进行审核,审核经过以后,会把代码合并到主分支上。

image.png

这就是团队开发的基本流程。

issue

既然是团队开发,就须要了解issue。

image.png

issue是“事件”的意思,也就是告诉其余成员,“我正在作什么,我想实现什么功能”,当别人看到你的issue后,就知道你正在作这件事,避免两我的写出重复的代码

一个issue对应一个分支:
image.png

好比这个issue的编号是4,咱们就在本地建立4分支:

git checkout -b 新建分支

若是咱们固然在master分支上,输入:

// 建立名称是4的分支
git checkout -b 4

就成功建立了4分支:
image.png

以后全部的更改,都在4分支上进行,和主分支没有关系了。

git push 推送更改

当你的代码写完以后,回到终端,输入:

// 让git记录当前目录的全部文件
git add .

// 提交更改到本地仓库,备注信息随便写,好比写“我正在作什么”
git commit - m <备注信息>

// 将本地的更改推送到GitHub的4分支
git push origin 4

这三条命令,能够把你的代码推送到GitHub上,还差最后一步

PullRequest

最后一步是发起合并请求。

在GitHub网站上新建PullRequest。

compare处填写本身刚刚上传的分支
base处填写被合并的分支

image.png

上图的意思是,把本身的2分支合并到主分支上,主要不要写反!

点击提交后,剩下的就交给负责人审核了。

总结

讲的再多也没用,本身试一试,什么都明白了。

再说几句

记得去年咱们刚开始作第一个练手的项目时,在Git方面遇到问题。
因为Git涉及到团队协做,若是任何一我的掌握很差,都会影响合做项目的代码安全(好比误删代码、提交了错误的代码,等等)。
出于这个缘由,我提早向硕哥请教GitHub的基本用法,本身学会后再讲给小组的其余成员,所以保证了后来每次代码合并都平稳、安全的进行。

后面的内容会尽快更新。

本文做者:河北工业大学梦云智开发团队 刘宇轩

相关文章
相关标签/搜索