关于git:Git的基础概念及使用

Git的根底概念

  1. 什么是Git
    Git 是一个开源的分布式版本控制系统,是目前世界上最先进最风行的版本控制系统。能够疾速高效地解决从很小到十分大的我的项目版本治理。
    特点:我的项目越大越简单,协同开发者越多,越能体现出 Git 的高性能高可用性
  2. Git的个性
    Git之所以疾速和高效,次要依赖于它的如下两个个性:

    ① 间接记录快照,而非差别比拟
    
    ② 近乎所有操作都是本地执行
  3. SVN 的差别比拟
    传统的版本控制系统(例如 SVN)是基于差别的版本控制,它们存储的是一组根本文件每个文件随工夫逐渐累积的差别
    SVN的益处 节俭磁盘空间
    SVN毛病 耗时、效率低在每次切换版本的时候,都须要在根本文件的根底上,利用每个差别,从而生成指标版本对应的文件
  4. Git 的记录快照
    Git 快照是在原有文件版本的根底上从新生成一份新的文件,相似于备份。为了效率,如果文件没有批改,Git不再从新存储该文件,而是只保留一个链接指向之前存储的文件。
    Git快照毛病 占用磁盘空间较大
    Git快照长处 版本切换时十分快,因为每个版本都是残缺的文件快照,切换版本时间接复原指标版本的快照即可。
    特点 空间换工夫,近乎所有的操作都只需拜访本地文件和资源个别不须要来自网上 其余计算机的信息
    个性

    • 断网后仍旧能够在本地对我的项目进行版本治理
    • 联网后,把本地批改的记录同步到云端服务器即可
  5. Git 中的三个区域
    应用 Git 治理的我的项目,领有三个区域,别离是工作区暂存区Git 仓库
  6. Git 中的三种状态

    • 已批改 modified
      示意批改了文件,但还没将批改的后果放到暂存区
    • 已暂存 staged
      示意对已批改文件的以后版本做了标记,使之蕴含在下次提交的列表中
    • 已提交 committed
      示意文件曾经平安地保留在本地的 Git 仓库中
      留神:

      • 工作区的文件被批改了,但还没有放到暂存区,就是已批改状态。
      • 如果文件已批改并放入暂存区,就属于已暂存状态。
      • 如果 Git 仓库中保留着特定版本的文件,就属于已提交状态。
  7. 根本的 Git 工作流程如下

       ① 在工作区中批改文件
    
       ② 将你想要下次提交的更改进行暂存
    
       ③ 提交更新,找到暂存区的文件,将快照永久性存储到 Git 仓库
  8. Git根底
    装置并配置 Git 点击下载相干的Git版本
  9. 配置用户信息
    装置完 Git 之后,要做的第一件事就是设置本人的用户名邮件地址。因为通过 Git 对我的项目进行版本治理的时候,Git 须要应用这些根本信息,来记录是谁对我的项目进行了操作:

    git config --global user.name "yourname"
    git config --global user.email "yourname@qq.com"

    留神 如果应用了 –global 选项,那么该命令只须要运行一次,即可永恒失效。

  10. 查看配置信息
    按如此终端命令,疾速的查看 Git 的全局配置信息:

    # 查看所有的全局配置项
    git config --list --global
    # 查看指定的全局配置项
    git config user.name
    git config user.email
  11. 获取帮忙信息

    # 想要获取 git config 命令的疾速参考
    git config -h
  12. 获取 Git 仓库的两种形式
    ① 将尚未进行版本控制的本地目录转换Git 仓库
    ​ ② 从其它服务器克隆一个已存在的 Git 仓库
    以上两种形式都可能在本人的电脑上失去一个可用的 Git 仓库
  13. 在现有目录中初始化仓库
    1. 在我的项目文件所在目录下关上终端
    2. 执行 git init 命令初始化文件 (会生成.git暗藏文件夹 本机是看不到的)
    3. 工作区中的文件的4种状态 ,这四种状态共分为两大类(被Git治理和未跟踪两种)
  14. 移除文件
    从 Git 仓库中移除文件的形式有两种:

    • 从 Git 仓库和工作区中同时移除对应的文件
    • 只从 Git 仓库中移除指定的文件,但保留工作区中对应的文件
    # 从 Git仓库和工作区中同时移除 图书治理.js 文件
    git rm -f index.js
    # 只从 Git 仓库中移除 index.css,但保留工作区中的 图书治理.css 文件
    git rm --cached 图书治理.css
  15. 疏忽文件

    • 个别咱们总会有些文件无需纳入 Git 的治理,也不心愿它们总呈现在未跟踪文件列表。 在这种状况下,咱们能够创立一个名为 .gitignore 的配置文件,列出要疏忽的文件的匹配模式。
    • 文件 .gitignore 的格局标准如下:

      ① 以 **# 结尾**的是正文
      
      ② 以 **/ 结尾**的是目录
      
      ③ 以 **/ 结尾**避免递归
      
      ④ 以 **! 结尾**示意取反
      
      ⑤ 能够应用 **glob 模式**进行文件和文件夹的匹配(glob 指简化了的正则表达式)
    • 星号 * 匹配零个或多个任意字符
    • [abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)
    • 问号 ? 只匹配一个任意字符
    • 两个星号 ** 示意匹配任意两头目录(比方 a/**/z 能够匹配 a/z 、 a/b/z 或 a/b/c/z 等)
    • 在方括号中应用短划线分隔两个字符, 示意所有在这两个字符范畴内的都能够匹配(比方 [0-9] 示意匹配所有 0 到 9 的数字)
  16. .gitignore 文件的例子

    #疏忽所有的.a文件
    *.a
    # 即便后面疏忽了 .a文件 但跟踪所有的lib.a
    !lib.a
    # 只疏忽当前目录下的TODO文件 而不疏忽subdir/TODO
    /TODO
    #疏忽任何目录下的名为bulid的文件夹
    bulid/
    #疏忽doc/notes.txt 但不疏忽doc/server/arr.txt
    doc/*.txt
    # 疏忽doc/目录及其所有子目录的 .pdf 文件
    doc/**/*.pdf
  17. 查看提交的历史

    # 按工夫先后顺序列出所有的提交历史,最近的提交在最下面
    git log
    
    # 只展现最新的两条提交历史,数字能够按需进行填写
    git log -2
    
    # 在一行上展现最近两条提交历史的信息
    git log -2 --pretty=oneline
    
    # 在一行上展现最近两条提交历史信息,并自定义输入的格局
    # &h 提交的简写哈希值  %an 作者名字  %ar 作者订正日志  %s 提交阐明
    git log -2 --pretty=format:"%h | %an | %ar | %s"
  18. 回退到指定的版本

    # 在一行上展现所有的提交历史
    git log --pretty=oneline
    
    # 应用 git reset --hard 命令,依据指定的提交 ID 回退到指定版本
    git reset --hard <CommitID>
    
    # 在旧版本中应用 git reflog --pretty=oneline 命令,查看命令操作的历史
    git reflog --pretty=oneline
    
    # 再次依据最新的提交 ID,跳转到最新的版本
    git reset --hard <CommitID>

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理