Git概念
Git是一个免费的、开源的分布式版本控制系统(SVN集中化版本控制系统)
什么是版本控制?
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制系统的分类
集中化的版本控制系统:
集中化的版本控制系统诸如CVS、SVN以及Perforce等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们通过客户端连到这台服务器,取出最新的文件或者提交更新。
这么做最显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
分布式的版本控制系统:
客户端并不只是提取最新版本的文件快照,而是把代码 仓库完整地镜像下来。
(1) 查看git安装版本
git --version
(2)清屏操作
clear
(3)设置签名:
设置用户名和邮箱:
git config --global user.name "mting"
git config --global user.email "348265****@qq.com"
(4)本地仓库的初始化
$ git init
.git文件下的子目录不要随意删除
Git常用命令
add和commit命令
【1】先创建一个文件:
Demo.txt
【2】将文件提交到暂存区:
$ git add Demo.txt
【3】将暂存区的内容提交到本地库:
git commit -m "这是我提交的第一个文件 Demo.txt" Demo.txt
注意:不放在本地仓库的文件git不进行管理
status命令
查看状态:
git status
修改文件后需要重新添加至:暂存区
git add Demo2.txt
然后将暂存区的文件提交到本地库
git commit -m "Demo2.txt文件被修改后的内容" Demo2.txt
log命令
查看日志: git log
当历史记录过多的时候,查看日志的时候,有分页效果,分屏效果,一页展示不下
下一页:空格
上一页:b
到尾页了,显示END
退出:q
日志展示方式:
方式1: git log
方式2:git log --pretty=oneline
方式3:git log --oneline
方式4:git reflog
reset命令
复制:在终端选中就是复制了
粘贴:右键:paste
【1】hard参数:git reset --hard [索引]
本地库的指针移动的同时,重置暂存区,重置工作区
【2】mixed参数:git reset --mixed [索引]
本地库的指针移动的同时,重置暂存区,但是工作区不动
【3】soft参数:git reset --soft [索引]
本地库指针移动的时候,暂存区和工作区都不动
总结:第一种hard参数用的最多
删除本地文件和找回本地库删除的文件
【1】新建一个test2.txt文件
【2】将它add到暂存区中
【3】再通过commit提交到本地库
【4】删除工作区中test2.txt
【5】将删除操作同步到暂存区
【6】将删除操作同步到本地库
【7】查看日志
【8】找回本地库中删除的文件,实际上就是将历史版本切换到刚才添加文件的那个版本即可
找回暂存区删除的文件
【1】删除工作区数据
【2】同步到暂存区
【3】恢复暂存区中数据
diff命令
【1】新建一个test3.txt文件,添加到暂存区,提交到本地库
将test3.txt文件工作区与暂存区进行比较
总结:git diff [文件名] =》将工作区中的文件和暂存区中文件进行比较
多文件进行比较
总结:git diff --->比较工作区和暂存区中 所有文件的差异
操作分支
查看分支
创建分支
切换分支
查看分支添加的内容
合并分支
本地创建远程库地址的别名
查看别名:
起别名:
推送数据
克隆操作
克隆操作可以帮助我们完成:
(1)初始化本地库
(2)将远程库内容完整的克隆到本地
(3)替我们创建远程库的别名:
远程库经理拉去操作
项目经理进行拉取:
(1)先是抓取操作:fetch
在抓取操作执行后,只是将远程库的内容下载到本地,但是工作区中的文件并没有更新。工作区还是原来的内容
抓取后可以区远程库分支看看
远程库拉取可以直接利用pull命令来完成:
注意:当修改了远程仓库中的内容时,因为并没有跟本地仓库同步,所以在本地仓库执行push时会报错,此时需要执行git pull --rabase origin master,然后执行git push origin master即可解决
协同开发时冲突解决
(团队其他成员修改同一个文件区域)
在冲突情况下,应该先拉取下来,然后修改冲突,然后在推送到远程服务器
注意:解决冲突问题的时候,提交不可以代文件名,否则提交失败
跨团队合作
【1】得到远程库地址(A公司)
【2】进行fork操作(B公司)
进入到账号后,复制地址,然后点击下面的fork操作;
免密操作
【1】进入用户的主目录中:
【2】执行命令,生成一个.ssh的目录:
keygen ----> key generation
注意:C要大写
后面的邮箱要与git注册的账号的时候邮箱相对应
三次回车默认值即可
发现.ssh目录下有两个文件
【3】打开id_ras.pub文件,将里面的内容进行复制操作
【4】打开git账号
【5】生成密钥以后,就可以正常进行push操作
对ssh远程地址起别名
展示别名
******************MTING***************
THANKS!