git使⽤教程(最详细、最傻⽠)
⽬录
1.git 简介
1.1 产⽣历史
1.2 git两⼤特点
2.安装配置
3.创建⼀个版本库
4.版本的创建与回退
4.1 使⽤
4.2 ⼯作区和缓存区
4.3 管理修改
4.4 撤销修改
4.5 对⽐⽂件的不同
4.6 删除⽂件
5. 分⽀管理
5.1概念
5.2 创建与合并分⽀
5.3 解决冲突
5.4 分⽀管理策略
5.5 Bug分⽀
6.使⽤github
6.1 创建仓库
6.2 添加ssh账户
6.3 克隆项⽬
6.4 上传分⽀/推送代码
6.5 将本地分⽀跟踪服务器分⽀
6.6 从远程分⽀上拉取代码
7.⼯作使⽤git
8.思维导图笔记
1.git 简介
1.1 产⽣历史
git是⽬前世界上最先进的分布式版本控制系统。
Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最⼤的服务器系统软件了。
Linus虽然创建了Linux,但Linux的壮⼤是靠全世界热⼼的志愿者参与的,这么多⼈在世界各地为Linux 编写代码,那Linux的代码是如何管理的呢?事实是,**在2002年以前,世界各地的志愿者把源代码⽂件通过diff的⽅式发给Linus,然后由Linus本⼈通过⼿⼯⽅式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系统⾥呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,⽽且必须联⽹才能使⽤。有⼀些商⽤的版本控制系统,虽然⽐CVS、SVN好⽤,但那是付费的,和Linux的开源精神不符。不过,到了2002年,Linux系统已经发展了⼗年了,代码库之⼤让Linus很难继续通过⼿⼯⽅式管理了,社区的弟兄们也对这种⽅式表达了强烈不满,于是Linus选择了⼀个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于⼈道主义精神,授权Linux社区免费使⽤这个版本控制系统。**团结的⼤好局⾯在2005年就被打破了,原因是Linux社区⽜⼈聚集,不免沾染了⼀些梁⼭好汉的江湖习⽓。开发Samba的Andrew试图破解BitKeeper的协议(这么⼲的其实也不只他⼀个),被BitMover公司发现了(监控⼯作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使⽤权。Linus可以向BitMover公司道个歉,保证以后会严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:
Linus花了两周时间⾃⼰⽤C写了⼀个分布式版本控制系统,这就是Git!⼀个⽉之内,Linux系统的源码已经由Git管理了!⽜是怎么定义的呢?⼤家可以体会⼀下。Git迅速成为最流⾏的分布式版本控制系统,尤其是2008年,GitHub⽹站上线了,它为开源项⽬免费提供Git存储,⽆数开源项⽬开始迁移⾄Gi
tHub,包括jQuery,PHP,Ruby等等。历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费⽽超级好⽤的Git了。
1.2 git两⼤特点
版本控制:可以解决多⼈同时开发的代码问题,也可以解决回历史代码的问题。
分布式:Git是分布式版本控制系统,同⼀个Git仓库,可以分布到不同的机器上。⾸先⼀台电脑充当服务器的⾓⾊,每天24⼩时开机,其他每个⼈都从这个“服务器“仓库克隆⼀份到⾃⼰的电脑上,并且各⾃把各⾃的提交推送到服务器仓库⾥,也从服务器仓库中拉取别⼈的提交。可以⾃已搭建这台服务器,也可以使⽤GitHub⽹站。
2.安装配置
⼀路点Next即可,安装位置就放在C盘。
装好git后
在终端⾥⾯敲⼊git,
出现这样的画⾯就表⽰你的git装好了,此处应该有掌声~~
3.创建⼀个版本库
(1)新建⼀个⽬录git_test,在git_test⽬录下创建⼀个版本库,命令如下:
接着初始化仓库
说明:可以看到在git_test⽬录下创建了⼀个.git隐藏⽬录,这就是版本库⽬录。
4.版本的创建与回退
4.1 使⽤
(1)在git_test⽬录下创建⼀个⽂件,编辑内容如下:
(2)使⽤如下两条命令可以创建⼀个版本:
git
git commit -m “版本1”
(3)使⽤如下命令可以查看版本记录:
git log
(4)继续编辑,在⾥⾯增加⼀⾏。
(5)使⽤如下命令再创建⼀个版本并查看版本记录:
(6)现在若想回到某⼀个版本,可以使⽤如下命令:
其中HEAD表⽰当前最新版本【请记死】,HEAD^表⽰当前版本的前⼀个版本,HEAD^^表⽰当前版本的前前个版本,也可以使⽤HEAD~1表⽰当前版本的前⼀个版本,HEAD~100表⽰当前版本的前100版本。
因为版本1的内容是1⾏:
this is the first line
因为版本2的内容是2⾏:
this is the first line
this is the second line
因为
$ git reset --hard HEAD^ HEAD is now at 51d36c7 版本1
使指针HEAD指向(倒退)到版本1,
因此打印的内容就是版本1的内容,即this is the first line
(7)假如我们现在⼜想回到版本2,这个时候怎么办?可以使⽤如下命令:git reset --hard 版本号
(8)在终端执⾏如下命令:
版本2⼜回来了,内容也是原来的内容。
接着玩
退出终端,再重进:
这个重进终端的操作让我们看不到版本2的版本号,要回到版本2怎么办?
命令:git reflog来查看操作记录。
错误⽰例:
原因是按照当前版本1倒退的话,怎么也不会前进到版本2吧?逻辑错误。
正确实例:
要⽤到版本号。
查看版本2的内容:
不理解版本1,版本2有啥区别?
这个东西像游戏更新⼀样,版本2是在版本1的基础上添加新功能的,版本1内容不发⽣改变。例如王者荣耀版本更新,界⾯总会变化,但是英雄的属性(技能,名字)⼀般不会改变。
4.2 ⼯作区和缓存区
4.2.1 ⼯作区(WorkingDirectory)
⼯作区(WorkingDirectory) 电脑中的⽬录,⽐如我们的git_test,就是⼀个⼯作区。
jquery在项目里是干啥的
4.2.2 版本库(Repository)
⼯作区有⼀个隐藏⽬录.git,这个不是⼯作区,⽽是git的版本库。git的版本库⾥存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有git为我们⾃动创建的第⼀个分⽀master,以及指向master的⼀个指针叫HEAD。
因为我们创建git版本库时,git⾃动为我们创建了唯⼀⼀个master分⽀,所以,现在,git commit就是往master分⽀上提交更改。
你可以简单理解为,需要提交的⽂件修改通通放到暂存区【计算机的缓存区】,然后,⼀次性提交暂存区的所有修改。
前⾯讲了我们把⽂件往版本库⾥添加的时候,是分两步执⾏的:
第⼀步是⽤git add把⽂件添加进去,实际上就是把⽂件修改添加到暂存区
第⼆步是⽤git commit提交更改,实际上就是把暂存区的所有内容提交到当前分⽀。
(1)下⾯在git test⽬录下再创建⼀个⽂件,然后编辑内容如下:
(2)然后编辑,操作如下:
注意的是创建⽂件和编辑⽂件都是在⼯作区⾥完成。
(3)使⽤如下命令查看当前⼯作树的状态:
git status
翻译⼀下:
上⾯提⽰我们被修改,⽽没有被跟踪。
(4)我们使⽤如下命令把和加⼊到暂存区,然后再执⾏git status命令,结果如下:
注意:所有的 git add 命令是把所有提交的修改存放到暂存区。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论