当前位置: 首页 > article >正文

git/dvc笔记

目录

  • git
    • HEAD
    • <commit_id>
    • git checkout
    • git reset
    • 文件跟踪状态
    • git ls-files
    • git rm
    • .gitignore
    • git diff
    • 首次使用git的必要配置
  • dvc
    • dvc install
    • dvc status
    • dvc diff
    • dvc config cache.type

git

HEAD

HEAD表示分支的最新提交节点
前一个提交版本:HEAD^ == HEAD~1 == HEAD~
前两个提交版本:HEAD^^ == HEAD~2

可以使用@作为HEAD的别名

<commit_id>

<commit_id>可以是以下格式:

  • 哈希值
  • <branch_name>/<branch_name>^/<branch_name>~2
  • HEAD/HEAD^/HEAD~1/@
  • 标签名
  • 引用路径<branch_name>@{n}和<branch_name>@{time}

git checkout

  • git checkout <commit_id> -- <file_path>:恢复或检出指定文件的内容
  • git checkout <commit_id>:检出特定的提交
  • git checkout -b <new_branch_name> <commit_id>:基于指定的提交创建一个新分支,并立即切换到这个新分支上

git reset

在执行了git commit后想要撤回最近这次(或多次)提交,则需要使用git commit。

  • git reset --soft:工作区和暂存区中的修改内容会保留,提交新的commit前需要将不需要的修改unstage
  • git reset/git reset --mixed:工作区中的修改内容会保留,但暂存区不会,需要手动将修改内容重新add到暂存区中
  • git reset --hard(很少用到):工作区和暂存区中的修改内容都会删掉,也就是被撤回commit中的修改全都不需要的情况下才使用

文件跟踪状态

仓库中的文件分为以下状态:

  • 未跟踪(Untracked)
  • 已跟踪(Tracked)
    • 未修改(Unmodified)
    • 已修改(Modified)
    • 已暂存(Staged)

暂存区(.git/index)记录着所有已跟踪文件各种信息:

  • 文件路径:文件在项目中的位置。
  • 文件的元数据:如文件的修改时间、权限等。
  • 文件内容的哈希值(blob 哈希):这是文件内容的唯一标识,用于检测文件是否发生变化。

git ls-files

  • git ls-files:列出所有已跟踪的文件
  • git ls-files --others:列出所有未跟踪的文件
  • git ls-files --ignored:列出所有被.gitignore忽略的文件
  • git ls-files --cached:列出暂存区(索引)中的文件
  • git ls-files --others --exclude-standard:列出所有未跟踪且不在.gitignore中的文件

git rm

  • git rm <file>:把文件从工作区和暂存区同时删除
  • git rm --cached <file>:把文件从暂存区中删除,但工作区中文件仍然保留

.gitignore

.gitignore对已跟踪文件没有作用,需要使用git rm来先将文件状态变成未跟踪
.gitignore中以/结尾的只对目录起作用,不以/结尾的同时对文件和目录起作用

git diff

  • git diff:比较工作区与暂存区之间的差异(即查看尚未暂存的改动)
  • git diff --cached:比较暂存区与最新一次提交(HEAD)的差异
  • git diff HEAD:比较工作区与最新一次提交的差异
  • git diff <commit1> <commit2>:查看任意两个提交之间的文件内容差异
  • git diff <branch1> <branch2>:比较两个分支间的文件差异

首次使用git的必要配置

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global credential.helper cache

dvc

dvc install

默认会增加以下hook:

  • .git/hooks/post-checkout:dvc checkout
  • .git/hooks/pre-commit:dvc status
  • .git/hooks/pre-push:dvc push

dvc status

无参数情况下,dvc status比较的是工作区和缓存区的文件差异

dvc diff

无参数情况下,dvc diff比较的是工作区和HEAD的差异

dvc config cache.type

默认情况下,cache.type为reflink,copy,但由于大部分文件系统中reflink不可用,所以实际上默认使用的是copy模式,


http://www.kler.cn/a/397655.html

相关文章:

  • MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并
  • 深度学习中的Pixel Shuffle和Pixel Unshuffle:图像超分辨率的秘密武器
  • 速通前端篇 —— HTML
  • CentOS8 在MySQL8.0 实现半同步复制
  • git撤销、回退某个commit的修改
  • Tensorflow基本概念
  • ElasticSearch学习笔记一:简单使用
  • 项目启动运行npm run dev报错digital envelope routines::unsupported at new Hash
  • 用 Python 从零开始创建神经网络(五):损失函数(Loss Functions)计算网络误差
  • 【030】基于51单片机甲醛检测报警器【Proteus仿真+Keil程序+报告+原理图】
  • 动态网页爬取 —— ajax 与 selenium
  • Scratch 015生日贺卡(下)
  • 技术理论||01无人机倾斜摄影原理
  • ERROR TypeError: AutoImport is not a function
  • kafka中是如何快速定位到一个offset的
  • 计算机的错误计算(一百五十六)
  • Git设置用户名及邮箱
  • 接口文档的编写
  • 深入解析 CentOS 7 上 MySQL 8.0 的最佳实践20241112
  • 新版Servlet3.0~5.0和旧版配置的区别
  • 算法练习:438. 找到字符串中所有字母异位词
  • 【Rust中的项目管理】
  • vue之axios根据某个接口创建实例,并设置headers和超时时间,捕捉异常
  • MySQL8 安装教程
  • 【网络安全面经】技术性问题
  • 大数据治理:构建高效数据生态的基石