Git的使用 | 青训营

218 阅读3分钟

Git分区

  • 工作区: 就是你在电脑里能看到的目录。
  • 暂存区: 英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库: 工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

Git文件状态

  • untracked :新建文件的状态,未被追踪
  • modified :被修改过的文件
  • staged :使用git add命令将文件修改添加到暂存区后的状态
  • committed :使用git commit命令将文件提交后的状态。staged只是暂存,还没有真正提交进Git版本库当中。

初始化Git仓库

在项目的目录下,使用git init命令。然后我们会发现多出来一个.git文件,在这个目录下就可以进行文件操作、进行提交等Git操作了。

Git 常用命令

  • git statsu 可以查看工作树和暂存区状态

    • 通过git status查看git状态时,红色的文件表示在工作区绿色的文件表示在暂存区
  • git add <file>... 可以将文件的修改添加到暂存区

    • git add . 将工作区中当前目录(包括子目录)下所有的文件改动添加到暂存区
    • git add * 将工作区中当前目录(包括子目录)下的所有文件改动,但不包括文件名以 . 符号开头的文件的改动,添加到暂存区
    • git add -ugit add --update 的简写形式,它只会监控当前整个工作区中之前已被 add 的文件,将其改动添加到暂存区,而新文件因为未被追踪(untracked)而不会将修改添加到工作区
    • git add -Agit add --all 的简写形式,它会将当前整个工作区中所有的文件改动提交至暂存区,包括新增、修改和被删除的文件,不受当前所在目录限制。
  • git commit

    • 暂存区内容添加到仓库中
  • git log

    • 查看提交历史
  • git restore --staged <file>

    • 将文件从缓存区中移动到工作区
  • git checkout -- <file>

    • 撤销工作区中对flie文件的改动操作

Stage 赋予 Git 更多灵活性

  • 修改了4个文件,在不放弃任何修改的情况下,其中一个文件不想提交,如何操作?(没add : git add 已经add: git reset --soft )
  • 修改到一半的文件,突然间不需要或者放弃修改了,怎么恢复未修改前文件? (git checkout)
  • 代码写一半,被打断去做其他功能开发,未完成代码保存?(git stash)
  • 代码写一半,发现忘记切换分支了?(git stash & git checkout)
  • 代码需要回滚了?(git reset)
  • 等等

上面提到的 checkout & stash & reset 等命令,通过不同的参数搭配使用,可以在工作区,暂存区和版本库之间,轻松进行数据的来回切换。

参考

Git三大特色之Stage(暂存区)

Git 教程 | 菜鸟教程 (runoob.com)