【1】Git技术:公司必备,一定要会
【2】Git概念:
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。
【3】什么是版本控制?
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统 。
【4】为什么要使用版本控制?
软件开发中采用版本控制系统是个明智的选择。
有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。
就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。
但额外增加的工作量却微乎其微。你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
【5】版本控制系统的分类:
?集中化的版本控制系统:
集中化的版本控制系统诸如CVS, SVN 以及Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客
户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法,这种做法带来了许多好处,现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统;要远比在各个客户端上维护本地数据库来得轻松容易。
事分两面,有好有坏。这么做最显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内, 谁都无法提交更新,也就无法协同工作。
?分布式的版本控制系统
由于上面集中化版本控制系统的那些缺点,于是分布式版本控制系统面世了。
在这类系统中,像Git, BitKeeper 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。
更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。这样,你就可以在同一个项目中分别和不同工作小组的人相互协作。
分布式的版本控制系统在管理项目时存放的不是项目版本与版本之间的差异.它存的是索引(所需磁盘空间很少所以每个客户端都可以放下整个
项目的历史记录)
Linux ---> 人越来越多 ---->代码优化的越来越好 ---》项目管理工具
---》Bitkeeper ---》终止合作 ---》一周Git --》一个月内将Linux管理在Git上---》开源,免费 ---》用户群大
【1】代码托管中心是干嘛的呢?
我们已经有了本地库,本地库可以帮我们进行版本控制,为什么还需要代码托管中心呢?
它的任务是帮我们维护远程库,
下面说一下本地库和远程库的交互方式,也分为两种:
(1)团队内部协作
(2)跨团队协作
【2】托管中心种类:
局域网环境下: 可以搭建 GitLab服务器作为代码托管中心,GitLab可以自己去搭建
外网环境下:可以由GitHub或者Gitee作为代码托管中心,GitHub或者Gitee是现成的托管中心,不用自己去搭建
【1】创建一个文件夹:
【2】打开Git终端:
Git Bash Here:
进入以后先对字体和编码进行设置:
在Git中命令跟Linux是一样的:
(1)查看git安装版本
(2)清屏:
(3)设置签名:
设置用户名和邮箱:
(4)本地仓库的初始化操作:
.git目录是隐藏的:可以调出来查看:
查看.git下内容:
注意事项: .git目录下的本地库相关的子目录和子文件不要删除,不要胡乱修改。
add和commit命令
添加文件: add 提交文件:commit
展示:
【1】先创建一个文件:
【2】将文件提交到暂存区:
【3】将暂存区的内容提交到本地库:
注意事项:
(1)不放在本地仓库中的文件,git是不进行管理
(2)即使放在本地仓库的文件,git也不管理,必须通过add,commit命令操作才可以将内容提交到本地库。
status命令
git status看的是工作区和暂存区的状态
创建一个文件,然后查看状态:
然后将Demo2.txt通过git add命令提交至:暂存区:
查看状态:
利用git commit 命令将文件提交至:本地库
现在修改Demo2.txt文件中内容:
然后再查看状态:
重新添加至:暂存区:
然后将暂存区的文件提交到本地库:
提交完再查看状态:
log命令
git log 可以让我们查看提交的,显示从最近到最远的日志
log命令2
当历史记录过多的时候,查看日志的时候,有分页效果,分屏效果,一页展示不下:
下一页:空格
上一页: b
到尾页了 ,显示END
退出:q
日志展示方式:
【1】方式1:git log ---》分页
【2】方式2:git log --pretty=onelint
【3】方式3:git --oneline
【4】方式4:git reflog
多了信息:HEAD@{数字}
这个数字的含义:指针回到当前这个历史版本需要走多少步
reset命令
reset命令:前进或者后退历史版本
复制:在终端中选中就是复制了
粘贴: 右键:paste
hard参数/mixed参数/soft参数
【1】hard参数:
git reset --hard [索引]
本地库的指针移动的同时,重置暂存区,重置工作区
【2】mixed参数:
本地库的指针移动的同时,重置暂存区,但是工作区不动
【3】soft参数:
本地库的指针移动的时候,暂存区,工作区都不动
总结:以后用的多的就是 第一种hard参数
删除文件_找回本地库删除的文件
【1】新建 一个Test2.txt文件
【2】将它add到暂存区中
【3】再通过commit提交到本地库
【4】删除工作区中的Test2.txt
【5】将删除操作同步到暂存区:
【6】将删除操作同步到本地库:
【7】查看日志:
【8】找回本地库中删除的文件,实际上就是将历史版本切换到刚才添加文件的那个版本即可:
找回暂存区删除的文件
【1】删除工作区数据:
【2】同步到缓存区:
【3】后悔了,恢复暂存区中数据:
diff命令
【1】先创建一个文件,添加到暂存区,再提交到本地库:
【2】更改工作区中Test3.txt中内容,增加内容:
导致:工作区 和 暂存区 不一致,比对:
总结: git diff [文件名] ---》 将工作区中的文件和暂存区中文件进行比较
多个文件的比对:
总结:git diff --->比较工作区中和暂存区中 所有文件的差异
比较暂存区和本地库中差别:
git diff [历史版本][文件名] ---》比较暂存区和本地库中内容
原文:https://www.cnblogs.com/liurui12138/p/15022167.html