跳转至

名词与注意事项

工作流程

  1. 忽视不需要文件
  2. git add a添加到暂存区
    1. 对暂存区的文件修改(修改包含删除)
      1. git add a暂存修改操作
        1. git restore -S a 取消暂存操作(再回到是git add还是git restore
      2. git restore a取消修改,恢复未修改状态
  3. git commit a -m "xxx"从暂时区删除, 并添加到仓库
  4. 回退版本git reset
  5. 恢复版本库到indexgit restore -S .,恢复index到工作目录git restore .
    1. 如果需要恢复版本库到index到工作目录,git checkout -f比较方便

文件链接

  • 在上传时不会上传符号链接目录里的内容,而是上传一个符号链接,文件内容是链接的target路径
  • 指向当前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仓库