git安装与使用,未完待续... ...
目录
一、git概念
【1】Git技术:公司必备,一定要会
【2】Git概念:
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。
【3】什么是版本控制?
【4】为什么要使用版本控制?
【5】版本控制系统的分类:
1、集中化的版本控制系统:
集中化的版本控制系统诸如CVS, SVN 以及Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法,这种做法带来了许多好处,现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统;要远比在各个客户端上维护本地数据库来得轻松容易。
事分两面,有好有坏。这么做最显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内, 谁都无法提交更新,也就无法协同工作。
2、分布式的版本控制系统
由于上面集中化版本控制系统的那些缺点,于是分布式版本控制系统面世了。
在这类系统中,像Git, BitKeeper 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。
更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。这样,你就可以在同一个项目中分别和不同工作小组的人相互协作。
分布式的版本控制系统在管理项目时存放的不是项目版本与版本之间的差异.它存的是索引(所需磁盘空间很少所以每个客户端都可以放下整个项目的历史记录)
二、git简史
BitKeeper【1】简史:百度百科
Linux--->代码越来越多--->优化做的越来越好---->项目管理工具---->BitKeeper----->一周开发Git----->一个月之内将Linux部署到Git上---->免费、开源---->广泛应用
三、git的安装
【1】Git官网:
附百度云盘下载地址:
链接:https://pan.baidu.com/s/1Y7oJK7tA3B9FS5rsWBW4oQ
提取码:ukpz
【2】安装
直接下一步
安装成功之后,在桌面点击右键选择:Git Bash Here打开终端
四、git结构
Git结构
五、代码托管中心—本地库和远程库的交互方式
【1】代码托管中心是干嘛的呢?
我们已经有了本地库,本地库可以帮我们进行版本控制,为什么还需要代码托管中心呢?
它的任务是帮我们维护远程库,
下面说一下本地库和远程库的交互方式,也分为两种:
(1)团队内部协作
(2)跨团队协作
跨团队协作
【2】托管中心种类:
局域网环境下: 可以搭建 GitLab服务器作为代码托管中心,GitLab可以自己去搭建
外网环境下:可以由GitHub或者Gitee作为代码托管中心,GitHub或者Gitee是现成的托管中心,不用自己去搭建
六、初始化本地仓库
在【Git】中的命令和Linux是一样:
【1】清屏 clear
【2】查看目录结构 ll
【3】查看安装Git的版本 git --version
【初始化本地仓库】
【1】打开Git Bash Here
【2】注册身份(签名)
设置用户名:
git config --global user.name "jason_yu"
设置邮箱:
git config --global user.email "335816866@qq.com"
【3】使用git init命令来进行初始化工作
【4】对应目录中GitReps中生成一个.git的隐藏目录
注意事项:这个本地库中的.git目录不要随意删除或者修改,容易出问题。
七、git常用命令
1、add和commit命令
添加文件: add 提交文件:commit
【1】创建一个文件Demo.txt
【2】git add把本地工作区的代码提交到暂存区中
【3】git commit 从暂存区中提交到本地仓库中
git commit -m "这是我第一次提交的Demo.txt" Demo.txt
注意事项:
1、不放到本地仓库的文件,是不能被git管理的;
2、即使放在本地仓库的文件,git也不能直接进行管理,必须通过add、commit命令把文件提交
到本地库中,git才能进行管理。
2、status命令
git status看的是工作区和暂存区的状态
把Demo2.txt提交至暂存区
查看状态:
再次把暂存区中的文件提交至本地库中
修改Demo2.txt中的内容
查看状态:
使用git add再次提交文件到暂存区中
使用git commit提交至本地库
查看状态
3、log命令
git log 可以让我们查看提交的,显示从最近到最远的日志
当历史记录过多的时候,查看日志的时候,有分页效果,分屏效果,一页展示不下:
下一页:空格
上一页:b
显示末尾:end
退出:q
日志显示方式:
【1】方式1:git log --->分页
【2】方式2:git log --pretty=oneline
【3】方式3:git log --oneline
【4】方式4:git reflog
多了一个参数:HEAD@{数字}
数字的含义:当前HEAD指针回到指定历史版本需要走的步数。
4、reset命令
reset命令:前进或者后退历史版本
复制:在终端中选中就是复制了
粘贴: 右键:paste
5、hard参数、mixed参数、soft参数
【reset参数】
1、【hard】git reset --hard
特点:当本地库中的指针发生偏移的时候,那么暂存区会重置,而且工作区也会重置。
2、【mixed】git reset --mixed
特点:当本地库中的指针发生偏移的时候,那么暂存区会重置,而工作区不动。
3、【soft】git reset --soft
特点:当本地库中的指针发生偏移的时候,暂存区和工作区都不动。
【结论】我们工作的时候,--hard用的最多。
6、删除文件-找回本地库删除的文件
【1】创建一个文件Test.txt
【2】使用add添加到暂存区
【3】使用commit提交到本地库
【4】删除工作区的文件
【5】同步工作区和暂存区的状态
【6】查看日志
【7】找回本地库中删除的文件:实际上就是把指针指到添加的那个历史版本就可以了。
7、找回暂存区删除的文件
【1】删除工作区的文件
【2】同步暂存区的文件
使用add添加到暂存区
【3】后悔了:实际上就是把指针指到添加的那个历史版本就可以了。
8、diff命令
【1】先创建一个文件,添加到暂存区,再提交到本地库:
导致:工作区 和 暂存区 不一致,比对:
总结: git diff [文件名] ---》 将工作区中的文件和暂存区中文件进行比较
多个文件的比对:
总结:git diff --->比较工作区中和暂存区中 所有文件的差异
比较暂存区和本地库中差别:
git diff [历史版本][文件名] ---》比较暂存区和本地库中内容
八、git中的分支
1、什么是分支
【1】什么是分支:
在版本控制过程中,使用多条线同时推进多个任务。这里面说的多条线,就是多个分支。
【2】通过一张图展示分支:
【3】分支的好处:
同时多个分支可以并行开发,互相不耽误,互相不影响,提高开发效率
如果有一个分支功能开发失败,直接删除这个分支就可以了,不会对其他分支产生任何影响。
2、操作分支
1)查看、创建、切换分支
【1】在工作区创建一个Test4.txt文件,然后提交到暂存区,提交到本地库:
【2】查看分支:
【3】创建分支,再查看:
【4】切换分支再查看:
2)冲突问题--如何解决冲突问题
【1】进入branch01分支,增加内容:
【2】将分支切换到master:
然后在主分支下 加入内容:
【3】再次切换到branch01分支查看:
【4】将branch01分支 合并到 主分支 :
(1)进入主分支:
(2)将branch01中的内容和主分支内容进行合并:
查看文件:出现冲突:
解决:
公司内部商议解决,或者自己决定 人为决定,留下想要的即可:
将工作区中内容添加到暂存区:
然后进行commit操作:
九、github账号注册
官网:
注册账号
当你创建resp库的时候会让你验证一封邮件,进入你自己的邮箱,点一下就ok!
修改头像
下一步自己尝试做一下。
十、初始化本地库
本地库和远程库的交互方式
【1】创建本地库
mkdir GitResp2
【2】初始化本地库
【3】创建一个文件Demo.txt
【4】提交至暂存区和本地库
十一、创建远程库
【1】new respository
【2】进入远程库创建页
远程库地址:
十二、在本地创建远程库地址的别名
远程库的地址:
点击进入:
远程库地址比较长,每次复制比较麻烦
https://github.com/jason1983-git/GitResp2.git
在Git本地将地址保存,通过别名
查看别名:
起别名:
十三、推送操作
推送成功以后,查看自己的远程库:
十四、克隆操作
远程库地址复制:
克隆操作:
克隆操作可以帮我们完成:
(1)初始化本地库
(2)将远程库内容完整的克隆到本地
(3)替我们创建远程库的别名:
十五、邀请加入团队,push操作
【1】更新本地库信息:
【2】push内容到远程库中去:
发现可以直接push进去,并没有让我录入账号密码,或者也没有提示错误 - --》结果 很诡异
原因:git在本地会有缓存
清除本地缓存
现在再次重新push,发现出错了:
必须要加入团队:
登录项目经理的账号,邀请普通成员:
登录被邀请者的账号,接收邀请:(在地址栏录入邀请链接即可: )
使用项目经理的账号查看远程库的状态
十六、远程库修改的拉取操作
【1】拉取操作 pull操作,相当于 fetch+merge
【2】项目经理先确认远程库内容是否更新了:
【3】项目经理进行拉取:
(1)先是抓取操作:fetch:
在抓取操作执行后,只是将远程库的内容下载到本地,但是工作区中的文件并没有更新。工作区中还是原先的内容:
抓取后可以去远程库看看内容是否正确:
然后发现内容都正确,就可以进行合并操作了:
合并之前应该将分支切换回来:
(2)进行合并:merge:
--------------------------------------------------------------------------------------------------------------------------------
远程库的拉取可以直接利用pull命令来完成:
fetch+merge操作:---》为了保险期间,慎重
pull --->代码简单,比较省事
未完待续,敬请期待... ...