前进之路 发表于 2024-11-17 15:27:29

git/dvc笔记

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模式,

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: git/dvc笔记