美文网首页
Git之stage

Git之stage

作者: LittleAnt | 来源:发表于2020-06-06 16:26 被阅读0次

Question: commit 就 commit呗,为什么 commit 之前必须要 add 一下呢?

Answer:git commit 执行时,会提交暂存区的内容。git add 命令会将我们看到的修改添加到暂存区中,这就是为什么 git commit 之前要先执行 git add 的原因。
Other questions:add 将修改放入暂存区,那么 add 之前数据存放在哪里?commit 又将存储区的数据提交到什么地方了呢?以及为什么要这么分为几个存储部分?等看完这篇文章,希望你这些问题,都能找到答案。

Git 可以大概分为三个区

Git 本地数据管理,大概可以分为三个区,工作区,暂存区和版本库。

  • 工作区(Working Directory)
    是我们直接编辑的地方,例如 IDE打开的项目,记事本打开的文本等,肉眼可见,直接操作。
  • 暂存区(Stage 或 Index)
    数据暂时存放的区域,可在工作区和版本库之间进行数据的友好交流。
  • 版本库(commit History)
    存放已经提交的数据,push 的时候,就是把这个区的数据 push 到远程仓库了。
    下面是,当开发者通过 git 修改数据时,各区之间的数据传递流程示意图。

对比三个区之间的数据差别

命令 作用
git diff 工作区 vs 暂存区
git diff head 工作区 vs 版本库
git diff --cached 暂存区 vs 版本库

Stage 赋予 Git 更多灵活性

不知道stage时,经常会遇到束手无策的场景。知道后,你一定会十分感动,十分膜拜 Git 的开发者- Linus Torvalds ,stage 就是这么的精彩。以场景,只要理解 stage, 用好相应命令,都能轻易解决:

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

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

结尾

暂存区是介于工作区和版本库之间的一个中间存储状态,很多命令都会涉及暂存区的状态,因此理解暂存区的存在是至关重要的。

相关文章

  • Git之stage

    Question: commit 就 commit呗,为什么 commit 之前必须要 add 一下呢? Answ...

  • 初识git

    git status 查看当前状态 stage区域的 增,改:git add 删:git rm --cached ...

  • 2020-12-14

    git stage 状态 git diff head 工作区 vs 版本库 查看暂存文档 git diff --n...

  • git工作区,暂存区,本地仓库,远程仓库

    workspace工作区:平时放代码的地方index/stage: git add之后会存入stage/index...

  • git命令整理

    git命令整理  初始化一个git仓库  添加一个文件到暂存区(stage),这里的暂存区(stage)用于暂时存...

  • Git 常用命令

    Git 命令: ) git 几个专用名词的译名如下: Workspace:工作区 Index / Stage:暂存...

  • GIT撤销修改总结

    GIT基础知识 主要名词如下: stage: 暂存区 master: 主分支 版本库: git自动生成的.git文...

  • git基础

    一、git常用命令 git diff #是工作区(work dict)和暂存区(stage)的比较git d...

  • Git基础

    Git常用名称 仓库 - repository 跟踪 - track 暂存 - stage 提交 - commit...

  • Git 常用命令

    git diff示意图git各种操作关系图 概念: Workspace:工作区 Index / Stage:暂存区...

网友评论

      本文标题:Git之stage

      本文链接:https://www.haomeiwen.com/subject/fiaxtktx.html