Git笔记
2024-7-8
| 2024-7-8
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
@ZZHow(ZZhow1024)
参考课程:
【【GeekHour】一小时Git教程】

简介

  • 什么是 Git
    • Git 是一个分布式版本控制软件
    • 最初由林纳斯·托瓦兹创作
    • 于 2005 年以 GPL 许可协议发布
  • Git 特点
    • 免费
    • 开源
    • 分布式
  • 版本控制系统分类
    • 集中式
      • 所有文件都保存在 Server 端,Client 端只保存副本
      • 代表:SVN
    • 分布式
      • 每个 Client 端都有一个完整的版本库
      • 代表:Git

安装与配置

  • 下载地址
  • 使用方式
    • 命令行
      • macOS/Linux
        • 直接在终端中使用
      • Windows
        • 鼠标右键单击 — Git Bash Here — 在启动的 Bash 中使用
    • 图形化界面(GUI)
      • 代表:GitHub Desktop
    • IDE 插件/扩展
  • 配置
    • 提示
      • 省略(Local):本地配置,只对本地仓库生效
      • --global:全局配置,所有仓库生效(常用
      • --system:系统配置,对所有用户生效(一般不用

创建仓库(Repository)

  • 创建方式
    • git init
      • 在本地创建一个空仓库
    • git clone
      • 从远程服务器克隆一个已经存在的仓库
  • 提示
    • 创建 Git 仓库会生成一个隐藏的 .git 文件夹
    • 删除 .git 文件后将破坏该仓库

工作区域和文件状态

  • Git 的本地数据管理区域
    • 工作区(Working Directory)
      • 在资源管理器中看到的文件夹就是工作区
    • 暂存区 / 索引(Staging Area / Index)
      • 是一种临时存储区域
      • 保存即将提交到 Git 仓库中的内容
    • 本地仓库(Local Repository)
      • 包含完整的项目历史和元数据
  • Git 中的文件状态
    • 未跟踪(Untrained)
    • 未修改(Unmodified)
    • 已修改(Modified)
    • 已暂存(Staged)
    • Git中的文件状态
      Git中的文件状态

添加和提交文件

回退版本(reset 命令)

  • 三种模式
    • git reset --soft
      • 保存工作区的内容
      • 保存暂存区的内容
    • git reset --hard
      • 丢弃工作区的内容
      • 丢弃暂存区的内容
    • git reset --mixed
      • 保存工作区的内容
      • 丢弃暂存区的内容
  • 提示:若不指定模式,则默认为 mixed 模式

查看差异

  • git dif 命令

    从版本库中删除文件

    • 方式一
      • 使用 rm file 命令从工作区删除文件
      • 使用 git add <file_name> 命令暂存删除的内容
    • 方式二
      • git rm 命令
      • 删除后要提交

      .gitignore忽略文件

      • 应该被忽略的文件
        • 系统或者软件自动生成的文件
        • 编译产生的中间文件和结果文件
        • 运行时生成日志文件、缓存文件和临时文件
        • 涉及身份、密码、口令、秘钥等敏感信息文件
      • .gitignore文件中的规则对已经在仓库中的文件无效
      • .gitignore文件的匹配规则
        • 使用标准的 Blob 模式匹配,例如:
          • 星号 * 通配任意个字符
          • 问号 ? 匹配单个字符
          • 中括号 [] 表示匹配列表中的单个字符,比如:[abd]表示a / b / c
        • 两个星号 ** 表示匹配任意的中间目录
        • 中括号可以使用短中线连接,比如:
          • [0-9] 表示任意一位数字,[a-z] 表示任意一位小写字母
          • 感叹号 ! 表示取反
      • 示例

        SSH配置与远程仓库操作

        • SSH配置
          • 本地操作
          • GitHub操作
            • 右上角头像 — Settings — SSH and GPG keys — New SSH Key
            • 输入 Title
            • 将公钥文件 xxx.pub 中的内容完全复制进 Key 中
            • 点击 Add SSH Key
        • 远程仓库操作

          关联本地仓库和远程仓库

          • 将关联本地仓库和远程仓库

            常用的GUI工具

            Git分支基本操作

            解决合并冲突

            • 两个分支未修改同一个文件的同一处位置:Git 自动合并
            • 两个分支修改了同一个文件的同一处位置:产生冲突
              • 解决冲突:
              • 中止合并 git merge --abort

              回退和rebase

              • 变基操作
                • 合并与变基对比
                  • merge
                    • 优点:不会破坏原分支的提交历史,方便回溯和查看
                    • 缺点:会产生额外的提交节点,分支图比较复杂
                  • rebase
                    • 优点:不会新增额外的提交记录,形成线性历史,比较直观和干净
                    • 缺点:会改变提交历史,改变了当前分支 branch out 的节点 避免在共享分支使用

                分支管理与工作流模型

                • Git Flow模型
                  • GitFlow模型
                    GitFlow模型
                • GitHub Flow模型
                  • GitHubFlow模型
                    GitHubFlow模型
                • 版本号规则
                  • 主版本(Major Version):主要的功 能变化或重大更新
                  • 次版本(Minor Version):一些新的 功能、改进和更新,通常不会影响现 有功能
                  • 修订版本(Patch Version):一些小 的 Bug 修复,安全漏洞补丁等。通常 不会更改现有功能和接口
                • 分支命名(应使用带有意义的描述性名称来命名分支)
                  • 版本发布分支/Tag 示例:v1.0.0
                  • 功能分支示例:feature-login-page
                  • 修复分支示例:hotfix-#issueid-desc
                • 分支管理
                  • 定期合并已经成功验证的分支,及时删除已经合并的分支
                  • 保持合适的分支数量
                  • 为分支设置合适的管理权限

                完,欢迎补充 : )

              • 工具
              • 开发
              • 学技术
              • Vue2+Vue3前端开发笔记合集Conda笔记
                Loading...
                目录