首页 > 其他分享 >Git缓冲区理解:`index`,`add`和`reset`,`staged`和`unstaged`

Git缓冲区理解:`index`,`add`和`reset`,`staged`和`unstaged`

时间:2024-09-15 19:22:23浏览次数:10  
标签:reset index Git 撤销 add git commit

在git里面,有一个叫index的区域,你把东西加到那里叫add, 把东西再从哪里撤回来叫reset;已经在里面的我们形容它是staged,还没有加进去的我们形容它是unstaged。

其实index区就是一个纯粹的缓冲区,也叫staging area,是正式提交之前给我们的一个缓冲,还有犹豫的余地。因为一旦正式commit提交了,你所有还没解决的愚蠢的傻事都会公开,即使能覆盖能撤销,但还是掩藏不了历史。

自己做的话无所谓其实,但是如果是团队合作的话,每次commit都是一次公开。 其实形容的话,就相当于老板让你做个项目,你肯定不可能做了一点东西就跑到老板办公室去送一趟文件,应该会先把做好的放在桌子的上那个小文件架上。然后那个文件架就叫index。

参考:Git 基础 - 撤消操作 撤销add

指定文件

$ git reset HEAD file.txt

全部撤销

$ git reset HEAD . 撤销修改

指定文件

$ git checkout -- file.txt

全部撤销

$ git checkout -- . 删除commit

一旦commit,就不能撤销!会永远留在历史里面。 修改commit

一般流程如下: $ git commit -m '首次提交'

$ git add forgotten_file $ git commit --amend 恢复某个文件到以前版本

用git log得知某个版本SHA后,恢复readme.md这个文件

$ git reset <SHA> readme.md

切换到该版本

$ git checkout readme.md

把变动提交

$ git add . && git commit

标签:reset,index,Git,撤销,add,git,commit
From: https://blog.51cto.com/teayear/12025057

相关文章

  • 使用mlp算法对Digits数据集进行分类
    程序功能这个程序使用多层感知机(MLP)对Digits数据集进行分类。程序将数据集分为训练集和测试集,创建并训练一个具有两个隐藏层的MLP模型。训练完成后,模型对测试数据进行预测,并通过准确率、分类报告和混淆矩阵评估模型的效果。这些评估指标帮助了解模型在手写数字分类任务......
  • 开发nodejs RESETful api 创建项目流程
    开发nodejsRESETfulapi创建项目流程1.安装vm-windows、node.js和npm安装Node.js时,建议使用版本管理器,因为版本变更速度非常快。你可能需要根据所使用的不同项目的需要在多个Node.js版本之间进行切换。Node版本管理器(通常称为nvm)是安装多个版本的Node.js的最......
  • GitLab CI_CD 从入门到实战笔记
    第1章认识GitLabCI/CD1.3GitLabCI/CD的几个基本概念GitLabCI/CD由以下两部分构成。(1)运行流水线的环境。它是由GitLabRunner提供的,这是一个由GitLab开发的开源软件包,要搭建GitLabCI/CD就必须安装它,因为它是流水线的运行环境。(2)定义流水线内容的.gitlab-ci.yml文......
  • 【工具使用】【Shell脚本】【gitlab】下拉所有的仓库代码并指定分支推送给客户仓库
    1 前言这不是项目要结束了么,项目验收要交付源代码,客户在阿里云上买了个云效,需要把我们公司的代码同步上去。首先云效支持各种导入,比如直接贴上你的gitlab地址,再加个token他就会自己同步,但我不能这么做,主要是因为我们公司有的别的项目代码也在一块,只是分支不一样,并且做事情要......
  • CTF比赛中的Git相关题目解题思路
    在CTF比赛中,涉及Git相关的题目通常会考察参赛者对Git仓库的了解,尤其是如何利用公开或不完整的Git仓库来恢复源代码或获取敏感信息。本文将结合一些常见的工具和步骤,详细介绍如何解决这类题目。背景Git是一种分布式版本控制系统,通常用于管理源代码。在某些情况下,Web服务器......
  • 常见的Git命令
    Git是一个广泛使用的版本控制系统,它允许你跟踪和协调代码更改。以下是一些常见的Git命令,这些命令覆盖了日常使用中的大部分场景:初始化仓库gitinit:在当前目录下创建一个新的Git仓库。配置用户信息gitconfig--globaluser.name"YourName":设置全局用户名。gitconfig--glob......
  • git命令使用详解——帮你应对各种代码管理情况
        日程使用git,不出错的时候gitpull、gitadd、gitcommit、gitpush、gitrebase等命令,就能覆盖绝大多数工作场景了。但是,实际工作中会遇到些让我们十分棘手的情况,这时候就需要一些不常用但不可少的git命令了,接下来为大家详细介绍下各种git命令:一、初始化仓库......
  • 15-1git使用
    git使用用户名:tong-xin123123密码:Tx123456版本控制代码保存到本地,电脑坏了,代码就丢了。或者多个同事各自写一部分的情况。管理文件等内容的修改历史跨区域多人协同开发追踪和记载文件历史记录记录软件开发过程统计工作量减轻开发人员负担并行开发版本控制工具gitS......
  • 在shell中使用github copilot
    brewinstallghghauthloginghextensioninstallgithub/gh-copilot createalias:aliascopilot='ghcopilot';echo'aliascopilot="ghcopilot"'>>~/.zshrc&&source~/.zshrcaliasgcs='ghcopilotsuggest&#......
  • 如何在 Fork 的 GitHub 项目中保留自己的修改并同步上游更新?github_fork_update
    如何在Fork的GitHub项目中保留自己的修改并同步上游更新?在GitHub上Fork了一个项目后,你可能会对项目进行一些修改,同时原作者也在不断更新。如果想要在保留自己修改的基础上,同步原作者的最新更新,很多人会不知所措。本文将详细讲解如何在不丢失自己改动的情况下,将上游仓库的更......