1.Git概念
Git 是一个免费的、开源的分布式版本控件系统,可以快速高效的处理大小型的项目
什么是版本控制?
版本控制是一种记录一个或若干文件内容变化,例如应用在代码管理就是可以帮助你管理每年写的代码。最典型的例子就是我们应该有写PPT的经历,写完了后给领导看改了一版,然后再评审会上过后又改了一版,然后再给大领导看又改了一版,这就3版了。通常我们会保留改前的版本以备改错了好还原。这样下来做完的话电脑上存一4个版本了,这个还是改的不多的情况,如果改的多可能有10几个版本,写一个材料就有10个文件放在电脑里,那么多人写一个大型项目是不是有很多文件,很多上版本,这样人为管理很难。所以需要有一个软件来管理不同的版,实现这样功能的软件就是版本控制系统。
版本管理有几个好处理:
1、回退–如果现在自己改过了可以马上回来前一个版本重新写过
2、协作–多个人开发同一个项目方便代码管理
集中和分布两个版本管理的优缺点
集中的优点是:
每个人都可以看到其他人正在做什么,管理员可以轻松掌控开发者的权限,集中管理比各自己在自己电脑管理版本方便
集中的缺点是:单点故障
分布式版本控制:客户端并不只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。每一台客户端都有一份完整的代码库,而不是最新版本。并且可以上传或下载远端仓库代码。GitHub就是一个非常有名的远端客户端
本地结构:
团队内协作
跨团队协作
初始化本地仓库:
1.创建文件夹
Gitresp
2.打开终端
查看版本
git -version
清屏
clear
设置签名
git config --global user.name
Git 常用命令
添加文件:add 提交文件commit
展示:先创建一个文件
touch test.txt
将文件添加暂存区
git add test.txt
将暂存区内容提交到仓库
git commit -m “备注”
status 查看暂存区内容
创建一个文件查看状态
然后将Demo.txt通过 add 提交到暂存区,再查看状态
再用commit提交到本地库
修改Demo.txt再查看
重新添加至暂存区:
提交后再查看状态
git log
从近到远展示提交
key:(索引)cf91f0a0bd261c28ed703af7a18e82001238c16c
value:历史记录对应的具体内容
当历史记录过多的时候,查看日志的时候,有分页的
效果,一页展示不下:下一页:空格 上一页:b
到尾页了,显示END
退出:q
日志展示方式:
【1】方式1:git log -->分页
【2】方式2: git log --pretty=oneline
【3】方式3:git log --oneline
【4】方式4:git reflow
多了信息:HEAD@{数字}
数字含义:回到当这个历史版本要走几步
reset命令
前进版本或后退版本
【1】hard参数
git reset --hard 【索引】
工作区 - 暂存区 --本地库 同步动
【2】mixed 参数
本地库指针移动的同时暂存区同步动,工作区不动
【3】soft 参数
本库指针移动,暂存区和工作区不动
以后用的多就是第1种
删除文件恢复
【1】新建一个Test2.txt文件
【2】add到暂存区
【3】再提交到本地库commit
【4】删除工作中的Test2.txt
【5】将删除操作同步到暂存区
【6】将删除操作同步到本地库
【7】通过 reset 找回删除的文件
找回存暂存区删除的内容
【1】删除工作区数据
【2】同步到缓存区
【3】后悔了还是用 reset hard回复
diff 比对文件差异
【1】先创建一个文件,添加到暂存区,再交到本地库
【2】更改工作区中test3.txt中内容,增加内容
导致:工作区和暂存区 不一致比对找不同:
git diff test3.txt
将工作区中的文件和暂存区的文件进行比较
多个文件(所有文件)比对:git diff
暂存区与本地库比对:
git diff HEAD test3.txt
分支
什么是分支:
在版本控制过程中,使用多条线同时推进任务,这里面说的多条线就是多个分支
通过一张图展示分支:
分支的好处:
多个分支可以并行开发,互相不影响,提高开发效率
如果有一个分支功能开发失败,直接删除分就可以,不会对其他分支产生影响
【1】在工作区创建一个test4.txt文件,然后提交到暂存区和本地库
【2】查看分支
git branch -v
【3】创建分支
git branch branch01
*号表示当前分支
【4】切换分支
git checkout branch01
【1】进入branch01,添加内容
git checkout branch01
git add test4.txt
git commit -m “add test4.txt branch01”
【2】切换到主分到
git checkout master
同一个文件在两个分支修改互不影响
【3】01合并到主分支
1.git checkout master
2.git merge branch01
合并出现了冲突
什么时候会出现冲突?
在同一个文件的同一个位置,才会出现冲突问题
abc
<<<<<<< HEAD ##这个是当前分支修改的内容
master add something
add from branch01 ##合并过来的内容
branch01
解决冲突:
公司内容商议或个人解决,留下想要的即可
然后提交暂存区和本地库
git add后看git status提示还在冲突中
git commit -m “解决冲突” ##不可以带文件名,不然会报错
Github一起使用
【1】初始化本地库
git 提供本的取别名的方法
–查看别名
git remote add origin https://github.com/tonyjync/Gitresp2.git