【Git】工作区 暂存区 版本库

2024-08-25 18:38
文章标签 工作 版本 git 暂存区

本文主要是介绍【Git】工作区 暂存区 版本库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上篇博客总结了一下git的常用命令,而在命令的操作背后,其实影响的是不同的工作区域。git的工作区域分为三个部分,分别为:工作区,暂存区和版本库。

一. 基本概念

  1. 工作区(working directory):将一个文件夹通过git init设置成一个git可以管理的文件夹时,这个文件夹里的内容就是工作区;
  2. 版本库(repository):当工作区生成后,可发现.git,这个就是版本库;
  3. 暂存区(stage / index):用来暂时存放工作区中修改的内容。

二. 工作图概览
这里写图片描述

  1. 什么是Object:Object是git对象库,是用来存储各种创建的对象以及内容;
  2. 什么是Master:Master即为主分支,当我们git init后,并不会立刻产生分支,而是在我们添加文件,git add , git commit 之后,才会看到master分支。
  3. 什么是HEAD:HEAD是一个引用,引用的是当前的分支。如果当前处于master分支,那么HEAD就会指向master,如果切换到dev或其它分支,则是指向切换到的分支。

三. 常用操作命令对不同区的影响

  1. git add :将对应更改的文件添加到暂存区,暂存区中的目录树会更新;
  2. git commit :将暂存区做出的修改提交到版本库中,这是master指向的分支被更新;
  3. git reset HEAD:暂存区的内容会被版本库的内容覆盖;
  4. git checkout –file:将工作区指定修改的文件被暂存区的内容覆盖(消除所有工作区进行的改动);
  5. git rm –cached:直接从暂存区将文件进行删除,不会影响工作区的内容;
  6. git checkout HEAD –file:将版本库中的对应的文件内容直接替换工作区和暂存区中的该文件。

四. 查看三个分区的区别

  1. git diff :查看工作区和暂存区的区别
  2. git diff –cached:查看暂存区和版本库之间的区别;
  3. git diff HEAD:查看工作区和版本库之间的区别;

五. 为什么需要暂存区

假设一个场景,当自己开发需求到一半,没有commit到版本库时,突然需要先紧急处理下线上的bug,但一时还不能完成手里的开发任务,这时,也不能commit提交给版本库,避免对其它人的影响。所以,如果没有一个暂存区,我们修改的文件只可以立刻保存到版本库中。

上述场景,我们利用git的暂存区,问题就可以很容易地处理,使用步骤如下:

  1. git stash :将自己工作区地修改内容隐藏
  2. 新建一个bug分支,处理bug
  3. 处理完成后,使用git stash pop将修改地内容重新移入到工作区
  4. 继续开发工作

这篇关于【Git】工作区 暂存区 版本库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106342

相关文章

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看