最通俗易懂的Git教程!!!

一、git的特性

1、git是一个版本控制系统,通俗的来说就是此前任一时刻的文件更改都能被查找到,就比如浏览器上面的历史纪录

2、比如,当我写好正确的代码后,发现有些地方可以更改得更具可读性,或者提高运行速度,这个时候我便开始修改,改完这些地方了,但是一运行,发现出bug,这个时候我想找回原来正确的代码的时候,不会用git的人就会用crtl+z返回上一步,但这并不总是奏效,因为有时修改太多,crtl+z不能起作用了。git就是为了解决这个问题,它总是保留之前的文件的快照,当你想用历史的文件内容,直接就可以返回。(流程图如下)

正确代码
修改完善
出bug
用git返回之前的正确代码看看这次为什么出错

二、git安装

本人用的是windows系统,windows系统请点击以下链接下载安装即可。
git下载安装链接
安装过程中有一些选项看不懂就不要改,按默认选择的选项安装就行了。

三、git基本操作

1、最基本的配置:

仅需配置你个人的名字和邮箱即可,其他等入门后慢慢解决。

$ git config --global user.name "laoyanjie"
$ git config --global user.email 123456789@qq.com

以上名字邮箱改为自己的即可,这样就可以开始使用git了

2、寻求帮助:

作为一个程序员,你必须要学会的就是看help文档,下面是git的help文档的调出方法。

$ git help <verb>

<verb>即是你想要查找的东西,比如commit,branch

3、使用git的基本步骤:
1、开始在项目使用git

要想在一个项目文件夹内使用git,
第一步:先切换到此文件夹目录下

$ cd D:\myplace\git_test

这样先进到这个文件夹内,至于cd是什么意思,各位同学可以查找一下基本命令行
第二步:

$ git init

这个时候在这个项目文件夹下就多出了一个.git文件,这个时候你就得到了一个git仓库。

2、工作区、暂存区、git仓库解析
git add .
git commit
工作区
暂存区
git仓库

工作区:就是你进行代码更改的地方
暂存区:就是暂时存放的地方,避免多次提交
git仓库:就是提交上去的地方,在这里你可以追溯之前的提交,这个就是git的核心性能。

3、git的克隆

为了方便一下的学习,这里先介绍克隆,从github上克隆一个项目下来从而进行以下操作
输入

$ git clone git://github.com/schacon/grit.git mygrit

mygrit即是你克隆下来的文件,你将它命名为mygrit

4、检查文件状态、提交、暂存

检查当前的文件是否在工作区被修改,或者暂存区是否有文件还没提交等等

$ git status

好,现在在工作区操作(任何时候只可能在工作区进行文件更改)

$echo 'helloworld' > helloworld.py

生成一个helloworld.py文件,里面写入helloworld
(其他更改操作也可以,这个只是示范)
然后执行

$git add helloworld.py

把这个更改纳入工作区
此时,你再执行

$git status

发生了新的变化,如下在这里插入图片描述
这个表示helloworld.py已经被纳入暂存区,将要被提交
这时再运行

$ git commit -m 'first commit'

然后出现文件更改信息
执行后再用git status查看文件状态,发现工作区再次清空了,那个更改已经被提交。
以上就是最基本的操作,但乍看,好像,git没有实现我们所希望的功能。下面我们继续介绍

5、git diff
git diff
工作区
暂存区

$ git diff就是用来查看工作区和暂存区那个地方修改了,具体到每一行代码。

git diff --staged
git仓库
暂存区

git diff --staged用来查看上一次提交形成的git仓库和暂存区的区别,哪一个地方修改了,具体到每一行代码。

6、对git仓库的文件删除

先用

$ rm helloworld.py

现在只是在工作区删除了这个文件,接下来要将这个更改更新到暂存区,输入以下

$ git rm helloworld.py

又或者

$ git add helloworld.py

这样helloworld.py的删除操作就已经更新到暂存区
最后$ git commit提交就可以了。

7、查看提交历史

在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用 git log 命令查看。

如果注意:如果提交历史太多,你需要一直按回车键直到最后才能看完,如果你不想看了,直接按q键退出即可。

默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。看到了吗,每次更新都有一个 校验和(暂且认为是每次提交的身份证)、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明
此外,git log 可以添加某些参数,如git log -p就是查看每次提交的不同(具体到每行代码),git log -2就是显示最近两次提交的差别,,git log --all就是显示所有的提交,注意,这些参数可以合成,即git log -p -2

四、回溯

终于介绍到文章开篇时我说的git能解决的问题了——将提交的历史记录找出来。
上一章最后那里,我们用$ git log得到了每次提交的身份证(校验和),就是下面的这串东西在这里插入图片描述
假若我们希望返回上一次提交后的文件状态,我们可以用 git reset --hard +校验和命令来返回。
我的操作如下

$ git reset --hard 26d4c6fc925690f3273fcdbabafb7f1f231686bf

这样我们就达到返回历史记录的目的了,但有一点需要注意,以后但凡使用git的时候,一定要好好写说明,就是每一次提交更改的说明,这样我们才能更快地回溯到我们需要返回的地方。

五、git的分支

终于到了要介绍分支的时候了,这个也是git 的核心性能。

1、分支的作用

准确地来说,分支是用来团队协作开发代码的。考虑以下的场景:
腾讯现在在开发微信新版本2.0,团队A的任务是优化微信支付,团队B的任务是开发微信表情管理。这个时候分支就起到作用了,团队A从微信1.0版本文件夹开始开发,从分支A研发微信支付;团队B也从微信1.0版本文件夹开始开发,但是从分支B研发微信表情管理。当两个团队都完成各自的开发的时候,他们两个团队的内容就开始合并,就开始发布微信2.0版了。

分支A
分支B
微信1.0
微信支付
微信表情
合并
微信2.0
2、分支创建

不知到你们有没有注意到,每次输入东西都会出现这行
在这里插入图片描述
这个master就是一个分支,就是当前你的一个分支,注意:master分支与其他任何你所创建的分支没有任何不同,它只是一个默认命名的分支。
接下来,我们新建一个分支试试

$ git branch testing

这行操作创建了一个分支,名叫testing

3、分支的管理

(i)创建分支后,工作区并不会转到那个新建的分支,而要使用git checkout+分支名

$ git checkout testing

(ii)我们打开helloworld.py然后修改里面的东西

$ atom helloworld.py

即是用atom编辑器打开这个文件,其他编辑器也可以,没有区别
在里面更改一些东西,比如把helloworld改成123456,然后保存,关闭这个文件。
然后,执行以下命令提交

$ git commit -a -m 'first commit for testing'

这个命令把git addgit commit和撰写提交说明信息结合了起来(message),分开一步步执行也是可以的。

(iii)这个时候,我们再返回master分支

$ git checkout master

再用atom helloworld.py打开这个文件,发现,里面的内容没有变,仍然是一开始的helloworld。
(vi)当有很多分支的时候,我们有时会力不从心,记不住那个分支有什么了,这个时候我们就可以对分支进行查看

$ git branch -v

这个时候就会输出分支的名字和该分支最后一次提交的说明,当前的分支带有星号(*)。
(v)我们还可以把分支可视化,即把分支图给画出来,执行一下命令

$ git log --graph --all

就可以得到下面的图了。

在这里插入图片描述

(vi)假若有些分支已经没用了,我们需要删除它,我们就可以运行下面的命令达到目的:(先暂时不要执行这行命令,后面我们还要用到testing)

$ git branch -d testing
4、分支的合并

先执行一下命令即可进行分支的合并

$ git  checout master
$ git merge  testing 

分支的合并有两种情况:
(i)两个分支的合并没有冲突,这个时候分支就合并成功了
(ii)合并含有冲突,此时 Git 做了合并,但是没有自动地创建一个新的合并提交。Git 会暂停下来,等待你去解决合并产生的冲突。你可以在合并冲突后的任意时刻使用 git status 命令来查看那些因包含合并冲突而处于未合并(unmerged)状态的文件。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值