git

一、什么是git

开源的分布式版本控制系统
用来记录文件的变化,用来查阅特点版本修订情况的系统,又叫做“版本控制系统”。

二、版本控制系统的分类

1.本地版本控制系统

1.单击运行,不支持多人习作开发
2.一旦故障,数据容易丢失

2.集中化的版本控制系统

1.基于服务器、客户端的运行模式
2.客户端只保留最新的文件版本
3.联网运行,支持多人协作开发
4.不支持离线提交
5.比如SVN

3.分布式版本控制系统。

1.基于服务器、客户端的运行模式
2.客户端存储的是服务器的完整备份,并不是只保留文件的最新版本。
3.联网运行,支持多人开发协作。
4.客户端断网后,支持离线本地提交版本更新。
5.服务器故障和损害后,可以使用任何一个客户端的备份进行恢复。
6.比如git

三、git的特点

1.直接记录快照,而非差异比较

svn版本控制系统是基于差异的版本控制,它们存储的是一组基本文件和每个文件随时间逐步累积的差异。记录的是文件的变化,并不是记录更新后的文件内容。好处是节省磁盘,但是效率低。
当切换版本时,是把文件运用保存的差异,每次都运行一遍。然后得到最后的文件。

git快照类似于备份,是在原有文件的基础上重新生成一份新的文件,类似于备份,为了效率,要是文件没有修改,git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
缺点是占用磁盘控件,但是版本切换时非常快。
切换时直接恢复目标版本的快照即可。

2.近乎所有操作都是本地执行的。

四、git的三个区域

1.工作区

工作区中的文件分为4种状态
1.未跟踪的状态,新建的文件一般都是未跟踪的。
2.已跟踪,未修改的,工作区的文件和git仓库中的文件保持一致
3.已修改,未暂存的,工作区的文件和git仓库中的文件不一致
4.已暂存的文件,工作区中被修改的文件已经放到暂存区,准备提交到git仓库中
最终要的结果是工作区的内容和仓库的内容一致。

2.暂存区

3.Git仓库

五、git的三种状态

1.已修改的

表示修改了文件,但是还没有将修改的结果放到暂存区

2.已暂存的

表示对已修改的当前版本做了标记,使之包含在下次提交的列表中

3.已提交的

表示文件已经安全地保存在本地的Git仓库中

六、git的工作流程

1.在工作区中修改文件
2.将你想要下次提交的更改进行暂存
3.提交更新,找到暂存区,将快照永久性存储到Git仓库。

七、安装git

去官网直接下载。

八、配置Git

1.配置用户信息

设置自己的用户名和邮件地址,记录时谁对项目进行了操作。

git config --global user.name '名字'
git config --global user.email  '邮件地址'

使用–global选项后,该命令需要运行一次即可,以后都不要设置。

2.查看配置信息

git config --list --global
# 查看所有的全局配置项

git config user.name
git config user.email
#查看指定的全局配置项

3.获取帮助信息

git help config
#git help 需要查看帮助的命令
#打开git config命令的帮助手册
#后面命令是什么就会打开什么命令的帮助手册,自动打开一个浏览器查看文档

git config -h
#这是直接在终端显示帮助,不会打开浏览器

4.获取git仓库的两种形式

1.将未进行版本控制的本地目录转换为git仓库

1.初始化仓库

在项目中鼠标右键打开‘git bash’

git init

git init会创建一个.git的隐藏目录。这个git目录就是当前项目的Git仓库,里面包含了初始的必要文件,这些文件是Git仓库的必要组成部分。删除这个文件,仓库就没了。

2.从其他服务器克隆一个已存在的git仓库

5.检查文件的状态

git status

检查工作区的文件都处于什么状态。是详细的信息
Untracked files (未跟踪的文件)
红色的modified 表示已修改,没提交到暂存区的文件
绿色的modified 表示已修改,已提交到暂存区的文件
即意味着git在之前的快照中没有这些文件,git不会自动将之纳入跟踪范围,除非明确的告诉它:我需要git跟踪管理该文件。

git status -s
#-s是short的缩写
#这是缩略的显示文件的信息,上面的是详细显示

未跟踪的文件前面有红色的??
新添加到暂存区的文件前面有绿色的A
所有文件都是未修改的状态就是什么都没有显示。
修改过的文件,没有放到暂存区的文件是红色的大M
绿色的D表示标记删除的文件。

6.跟踪新文件,添加到暂存区

git add 文件名

可以开始跟踪一个文件,并处于暂存的状态。

7.提交新文件到本地仓库

git commit -m '对本次提交的描述'

提交到本地仓库

8.对已提交到仓库的文件进行修改,提交到暂存区

当文件已经被提交到仓库后,修改文件后,需要把文件提交到暂存区中
需要再次运行

git add 文件名

git add有三种功能
1.用它来跟踪新文件
2.把已跟踪的,且已修改的文件放到暂存区
3.把有冲突的文件标记为已解决状态。

9.提交修改后已暂存的文件到本地仓库

再次运行

git commit -m '描述内容'

将修改后已暂存的文件提交到本地仓库。

10.撤销对文件的修改

把工作区中对应的文件换原成git仓库中所保存的版本,还原后,所有的修改都会丢失,且无法恢复。慎重撤销。

git checkout -- 文件名

即可撤销,是将仓库中储存的内容来覆盖工作区的内容。
尽量不要撤销。

11.一次性提交多个文件到暂存区

git add .
#后面加.就是所有的文件,将新增和修改后的文件新增到暂存区中

12.取消暂存的文件

git  reset HEAD 要移除的文件名

将暂存区的文件移出

13.跳过使用暂存区

git的工作流程是工作区—暂存区—git仓库,此时可以跳过暂存区,直接将工作区中的修改提交到git仓库,这时候git的工作的流程简化了工作区–git仓库。
不写git add
直接修改文件后写

git commit -a -m '描述信息'
#添加-a 就能跳过git add

就能把所有跟踪的文件暂存起来并一起提交。跳过git add步骤

14.从git仓库移除文件

移除文件有两种

1.从git仓库和工作区同时移出文件

git rm -f 文件名

2.只从git仓库移出指定的文件,但保留工作区中对应的文件

git rm --cached 文件名

执行后需要进行一次提交才会生效。

15.git忽略文件

创建一个.gitignore的配置文件
1.以#号开头的是注释
2.以/结尾的是目录
3.以/开头防止递归
4.以!开头表示取反。
5.可以使用glob模式进行文件和文件夹的匹配(glob是简化了的正则表达式)

1.什么是glob模式

1.*表示匹配0或多个任意字符
2.[acb]匹配任何一个列在方括号的字符
3.?表示只匹配一个任意字符
4.方括号中使用短横线,表示所有在这两个字符范围内的都可以匹配(比如[0-9])
5.两个**表示匹配任意中间目录
比如a/**/z可以匹配a/z、a/b/z或a/b/c/z等

2.例子

*.a
#忽略以.a结尾的文件


!lib.a
#跟踪所有的lib.a,即使上面你忽略了所有.a结尾的文件


/TODO
#只忽略当前目录下的TODO文件,不忽略其他文件下的TODO


build/
#忽略任何目录下的build文件夹


doc/*.txt
#忽略doc目录下,以.txt结尾的文件,但不忽略doc目录下的孙子目录里的以.txt结尾的文件




doc/**/*.pdf
#忽略doc/目录及所有子目录下的.pdf文件


16.查看提交历史

git log
#按时间先后顺序列出所有的提交历史,最近的提交排在最上面


git log -2
#只展示最新的两条提交数据,数字可以按需进行填写


git log -2 --pretty=oneline
#在一行上展示最近两条提交历史


git log -2 --pretty=format:%h | %an | %ar | %s
#在一行上展示最近两天提交历史信息,并自定义输出的格式
#%h 提交的简写哈希值
#%an 作者名字
#%ar 作者修订日期,按多久以前的方式显示
#%s 提交说明 



17、回退到指定版本

git log  --pretty=oneline
#查看所有的提交历史

git reset --hard 版本id
#根据指定的提交ID回退到指定版本
#id可以查看历史找到


git reflog --pretty==oneline
#当返回旧版本后,还要在旧版本中查看历史,需要使用这个命令,可以查看命令操作的历史

git reset --hard 版本id
#再根据指定的提交ID回退到指定版本


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值