什么是 Git

Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。

特点: 项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性

Git 的特性

Git 之所以快速和高效,主要依赖于它的如下两个特性:

  1. 直接记录快照,而非差异比较
  2. 近乎所有操作都是本地执行

与SVN的差异比较

传统的版本控制系统(例如 SVN)是基于差异的版本控制,它们存储的是一组基本文件和每个文件随时间逐步累积的差异。

好处: 节省磁盘空间
缺点: 耗时、效率低

在每次切换版本的时候,都需要在基本文件的基础上,应用每个差异,从而生成目标版本对应的文件。

Git 的记录快照

Git 快照是在原有文件版本的基础上重新生成一份新的文件,类似于备份。为了效率,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。

缺点: 占用磁盘空间较大
优点: 版本切换时非常快,因为每个版本都是完整的文件快照,切换版本时直接恢复目标版本的快照即可。
特点: 空间换时间

近乎所有操作都是本地执行

在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。

特性:

  1. 断网后依旧可以在本地对项目进行版本管理
  2. 联网后,把本地修改的记录同步到云端服务器即可

Git 中的三个区域

使用 Git 管理的项目,拥有三个区域,分别是工作区暂存区Git 仓库

Git 中的三种状态

  1. 已修改: 工作区的文件被修改了,但还没有放到暂存区,就是已修改状态。
  2. 已暂存: 如果文件已修改并放入暂存区,就属于已暂存状态。
  3. 已提交: 如果 Git 仓库中保存着特定版本的文件,就属于已提交状态

基本的 Git 工作流程

基本的 Git 工作流程如下:

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

Git的配置与安装

在Git官网中下载适合你电脑的安装包、

配置用户信息

配置是使用命令行来配置:

1. 配置用户名
git config --global user.name "在这里填写用户名"
2. 配置邮箱
git config --global user.email "邮箱"

tips: 如果使用了 --global 选项,那么该命令只需要运行一次,即可永久生效

Git 的全局配置文件在哪里查看

通过 git config --global user.namegit config --global user.email 配置的用户名和邮箱地址,会被写入到C:/Users/用户名文件夹/.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。

检查配置信息

3. 查看所有全局配置项
git config --list --global
4. 查看指定全局配置项
git config user.name
git config user.email

获取帮助信息(两种方式命令)

  1. 在浏览器中查看 git help config
  2. 在终端中查看 : git config -h
1. 在浏览器中查看   :git help config
2. 在终端中查看: git config -h

Git的基本操作

获取 Git 仓库的两种方式

  1. 将尚未进行版本控制的本地目录转换为 Git 仓库
  2. 从其它服务器克隆一个已存在的 Git 仓库

以上两种方式都能够在自己的电脑上得到一个可用的 Git 仓库

在现有目录中初始化仓库

如果自己有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,需要执行如下两个步骤:

  1. 在项目目录中,通过鼠标右键打开“Git Bash”
  2. 执行 git init 命令将当前的目录转化为 Git 仓库

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

tips: 如果没有显示.git文件,并不代表出错了,我们只是电脑默认把隐藏的文件不显示,可以再我的电脑中,点上方查看,然后把查看隐藏文件给选上就可以了;

git工作区中文件的 4 种状态

Git 操作的终极结果:让工作区中的文件都处于“未修改”的状态,然后供我们操作。

检查文件的状态

 git status(显示的非常全面)git status -s(仅仅显示文件的状态,非常精简)

查询状态的结果分析:

 1. ?? 代表未被git管理;2. A代表现在是从原来未被管理的状态,变成了被管理的状态,并且已经进入了工作区。此时如果进行修改,那就会变成红色的M,并且没有进入暂存区,想进去再用git add3. 红色M代表我们被跟踪的文件被修改了,但是还没有放到暂存区中。4. 绿色的D代表的是这个文件已经彻底被移除git了

添加跟踪文件

git add 文件名                          (eg: git add index.html)

把暂存区的文件提交到git仓库

git commit -m "在这里写描述信息,也可以不写"    -m的作用就是添加描述信息

如果要把修改的文件,放到暂存区,此时我们要重新运行 git add +这个文件 就可以了

运行以后的查询状态结果为: 红色的M就变成了绿色的M(表示修改的文件已经放到了 ,暂存区)

撤销对指定文件的修改(危险性比较高,谨慎操作)因为撤销以后就没办法恢复了

git checkout -- 文件名

向暂存区中一次性添加多个文件

git add .

把暂存区中的文件移除

git reset    HEAD  +要移除的文件名称

把暂存区中所有的文件都移除掉

git reset HEAD .

直接将工作区的文件直接提交到git仓库(-a 就是跳过暂存区的意思,-m就是添加描述信息的意思)

git commit -a -m "描述信息"

从git仓库中移除相应的文件(有两种)

  1. 把git仓库中和工作区中的这个文件同时移除 git rm -f 目标文件
  2. 值从git仓库中移除这个文件,但是保留工作区这个文件 git rm -- cached 目标文件

忽略文件,让不需要纳入git管理的文件,也不显示在未被git管理的列表中

在根目录上创建一个名字叫.gitignore的文件,然后在这个文件中写需要忽略的文件语法

文件 .gitignore 的格式规范:

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

glob 模式
6. 星号 * 匹配零个或多个任意字符
7. [abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)
8. 问号 ? 只匹配一个任意字符
9. 在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配
所有 0 到 9 的数字)
10. 两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等)

eg: .gitignore文件的例子

查看项目的提交历史

如果希望回顾项目的提交历史,可以使用 git log 这个简单且有效的命令。



回退到指定的版本


使用git reset --hard 命令 ,根据指定的 ID 回到指定的版本中



总结: GIT中的常用基础操作

  1. 初始化 Git 仓库的命令
    git init
  2. 查看文件状态的命令
    git statusgit status -s
  3. 一次性将文件加入暂存区的命令
    git add .
  4. 将暂存区的文件提交到 Git 仓库的命令
    git commit -m "提交消息"

不断复盘,不断优秀,踏实做人,认真做事;关注三连,持续更新~~~

Git操作 【详细】【详细】相关推荐

  1. 将本地项目上传到github,git操作详细指导,不看后悔深度好文!

    github入门到上传本地项目 GitHub是基于git实现的代码托管.git是目前最好用的版本控制系统了,非常受欢迎,比之svn更好. GitHub可以免费使用,并且快速稳定.即使是付费帐户,每个月 ...

  2. git指令快捷 idea_IDEA+Git+Gitlab使用详细教程

    GitLab 安装踩坑 502错误码和访问卡顿解决办法 Gitlab对内存的要求高,我的服务器Centos 7+2核心+2G内存,频繁报502错误,访问也很卡.原因可能是可用内存太少. # free ...

  3. 在Linux配置Git SSH的详细步骤;git配置ssh详细教程;

    在Linux或Mac OS上配置Git SSH的详细步骤如下: 1.打开终端,并输入以下命令检查是否已经在Linux下安装git git --version已安装,则获取git版本信息成功 2.如果已 ...

  4. git pull git push的详细使用

    git pull & git push的详细使用 git pull 常用 pull意为拉,这里引申为拉取代码. 在Git命令中使用pull,会将你的远程代码拉取到本地并进行合并 格式: git ...

  5. mysql的join语句使用_在MySQL中使用JOIN语句进行连接操作的详细教程

    到目前,我们已经学习了从一个表中获取数据.这是简单的需要,但在大多数现实MySQL的使用,经常需要将数据从多个表中的一个单一的查询. 可以使用多个表中的单一SQL查询.在MySQL中联接(join)行 ...

  6. PHP 操作redis 详细讲解

    2019独角兽企业重金招聘Python工程师标准>>> Redis 菜鸟教程学习网址 http://www.runoob.com/redis/redis-install.html 挺 ...

  7. Python 标准库之 shutil 高阶文件操作『详细』

    Python标准库之 shutil 高阶文件操作『详细』 文章目录 Python标准库之 shutil 高阶文件操作『详细』 一.Python shutil介绍

  8. git branch的详细使用,10个常见用法

    序 branch命令主要用来处理跟分支有关系的功能,比如创建分支.删除分支.查看本地分支.查看远程分支等. 常用命令 1.查看本地分支 git branch 如果不添加任何参数,则代表显示本地所有分支 ...

  9. Word进行自动生成目录右边页面等格操作简单详细方法

    Word进行自动生成目录右边页面等格操作简单详细方法 Word文档自动生成的目录,但是由于目录的右边不等(见下图),看起来不美观,所以我们可以将目录右边页面进行等格处理. 方法步骤如下: 一.首先选择 ...

最新文章

  1. 怎么扫描_打印机上扫描仪怎么用 打印机上扫描仪使用及添加方法
  2. 客户端负载均衡Ribbon之一:Spring Cloud Netflix负载均衡组件Ribbon介绍
  3. tomcat 修改默认字符集
  4. 混合开发的坑(7) ---输入文本时,键盘遮挡
  5. 获取打印的html代码怎么写,javascript如何输出?
  6. 总结 Visual Studio 2019 发布以来 XAML 工具的改进
  7. 嵌入式GUI FTK支持输入法
  8. kafka创建topic命令_0748-5.14.4-Kafka的扩容和缩容
  9. 【JEECG技术博文】Jeecg高级查询器
  10. 理解Python中的继承规则和继承顺序
  11. 8.configurable product
  12. IPFS时代来临,FIL WORLD重赋存储灵魂
  13. RPG像素游戏角色大合集
  14. wifi 联想小新_WiFi 6锐龙5一个都不能少 小新Pro 13详细配置曝光
  15. 2022第十二届中国电子文件管理论坛嘉宾揭晓
  16. 人和摩托最快达到目的地
  17. mw325r服务器无响应,水星(MERCURY)路由器MW325R上不了网/连不上网的解决方法
  18. IBM服务器硬盘灯不正常闪烁的解决办法(新硬盘绿灯闪烁)
  19. 自定义消息通知、手机震动、提示音
  20. 模拟银行卡三次密码输入场景

热门文章

  1. linux 统计每个ip数量,日子IP统计
  2. 【FPGA】五、蜂鸣器播放音乐
  3. gif文件太大怎么办?gif动图如何在线压缩?
  4. C#实现向手机发送验证码短信
  5. 【shaderforge学习笔记】 UVTile节点
  6. Highcharts 江湖就这样
  7. # 学号12 2016-2017-2 《程序设计与数据结构》第9周学习总结
  8. IDA的详细使用指南以及核心功能讲解
  9. Android源码编译及替换成自己编译的linux内核
  10. 巴菲特午餐取消,吃饭行情一地鸡毛