名词与注意事项
工作流程¶
- 忽视不需要文件
git add a添加到暂存区- 对暂存区的文件修改(修改包含删除)
git add a暂存修改操作git restore -S a取消暂存操作(再回到是git add还是git restore)
git restore a取消修改,恢复未修改状态
- 对暂存区的文件修改(修改包含删除)
git commit a -m "xxx"从暂时区删除, 并添加到仓库- 回退版本
git reset - 恢复版本库到index
git restore -S .,恢复index到工作目录git restore .- 如果需要恢复版本库到index到工作目录,
git checkout -f比较方便
- 如果需要恢复版本库到index到工作目录,
文件链接¶
- 在上传时不会上传符号链接目录里的内容,而是上传一个符号链接,文件内容是链接的target路径
HEAD¶
- 指向当前commit,分支才是指向分支最新commit
- detached HEAD:HEAD不是指向分支最新commit
- HEAD^:表示上一个commit,几个^就上几个
Git存储分区¶
- work directory:仓库目录当前文件,除了
.git目录 - 工作区(worktree):仅仅是仓库目录当前文件,除了
.git目录- 已跟踪(add),未跟踪(untracked)
- 文件都需要先暂存才能使用其他命令操作
- 暂存区(staged/index)
- 暂存未提交(new file),修改未重新暂存(modified & unReStaged),修改未提交(modified & uncommit)
- 数据
- 一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 保存在暂存区时会创建文件的快照,在.git/objects目录下(仅文件很大时)
- 版本库(repository)
- 已提交的文件(commited),一样被叫做staged文件,只是被commited了而已
- 数据
- COMMIT_EDITMSG(editmsg)
- 快照保存在.git/objects,但是仅仅是对暂存区快照的指针引用
- 暂存区、版本库、staged文件、index文件都是指被暂存的文件
bare仓库¶
-
bare repository:仅包含
.git目录,且创建的目录就是.git目录,默认目录名是{repositoryname}.git -
作用:仅
.git文件当然就是不能对工作区文件修改,目的仅仅是备份、共享仓库 -
bare 仓库创建后,协作者们就可以进行
git clone进行合作开发了,不需要操作bare仓库 -
参考
- https://blog.csdn.net/u013541707/article/details/107482045