首页 > 其他分享 >[Git] git stash命令详解

[Git] git stash命令详解

时间:2024-10-11 17:47:49浏览次数:11  
标签:文件 储存 Git index 暂存区 stash git

 前言


目录

git stash -m

git stash list

git stash pop

git stash apply index

git stash drop index

git stash clear

特定范围文件储存

git stash [-S|--staged]

git stash [-u|--include-untracked]

git stash [-a|--all]


将当前未提交的修改(即工作区和暂存区的修改)先暂时储藏起来,保存到一个栈中,并恢复工作目录到干净的 HEAD 状态。这样可以在不提交当前更改的情况下,切换到其他分支或进行其他操作。

git stash -m

将当前未提交的修改(即工作区和暂存区的修改)先暂时储藏起来

在工作区中新建文件3.txt,查看状态,此时的3.txt文件在工作区,还没有放到暂存区

将3.txt放到暂存区

使用命令储存3.txt  -m后面是备注信息

储存后,工作区就没有该文件了

git stash list

查看储存

git stash pop

弹出最后一次储存

查看储存,此时为空

将3.txt存入

在工作区修改3.txt后,再次储存

查看此时储存的文件,有两个

WIP意为work in progess, index用于后面取出所对应储存的修改

stash@{index}: WIP on [分支名]: [最近一次的commitID] [最近一次的提交信息]

git stash apply index

取出指定index的储藏的修改到工作区中 

取出index为0的文件

查看储存列表,仍然存在

工作区中出现文件3.txt

再尝试取出index为1的文件,报错,因为刚才已经取出了一个文件

git stash drop index

将指定index的储存从储存记录列表中删除 

查看储存列表,看到此时文件的index由1变成了0

git stash clear

储藏记录多的话,一个个删除太麻烦,可以批量删除

将文件放入暂存区

再次存入

取出1

在工作区修改文件,然后放入暂存区

储存并查看储存列表

删除并查看,此时的储存列表已经为空

特定范围文件储存

新建文件4、5、6

将4放入暂存区,6提交到版本库,然后再工作区修改文件6的内容,查看状态,现在的三个文件分别对应三种状态

4:新增加到暂存区的文件

5:新建的文件,没有放到暂存区

6:已经提交到版本库的文件,但在工作区进行了修改

git stash [-S|--staged]

只对暂存区文件进行储藏

看到工作区中的4.txt文件不在了,4.txt已经储存了

git stash [-u|--include-untracked]

对未追踪文件也进行储藏

新建文件7,放到暂存区

执行命令

看到工作区的5、7文件都不在了

 弹出

工作区恢复

git stash [-a|--all]

对所有文件进行储藏

此时状态

执行指令

此时的工作区,并且之前对文件6的修改恢复了

弹出

工作区文件恢复,且对文件6的修改也恢复了

标签:文件,储存,Git,index,暂存区,stash,git
From: https://blog.csdn.net/2301_77946674/article/details/142853961

相关文章

  • github加速
    Github一般用于Git的远程仓库,由于服务器位于国外,国内访问速度比较慢,为了提高访问速度,绕过DNS域名解析。获取Github的IP地址按下ctrl+alt+T打开命令终端,输入:nslookupgithub.com 获取github.global.ssl.fastly.net的IP地址按下ctrl+alt+T打开命令终端,输入:nslookupgithub.global......
  • 从0开始将本地git链接至github
    前言本文仅仅使用ssh将本地git链接至github,仅做本人记录使用。步骤1:创建一个Git仓库来存放dotfiles创建一个目录来存储dotfiles。通常,使用~/dotfiles作为存储位置。mkdir~/dotfiles初始化Git仓库:在dotfiles目录中初始化一个新的Git仓库。cd~/dotfile......
  • github 上将 stable 合并到 master 分支步骤
    本地仓库分支:origin远端仓库分支:upstream切到非master分支上,比如dev#本地操作gitbranch-Dmastergitfetchupstreammaster::mastergitcheckoutmaster#这步是拉取远端stable到master上,可能会出错误#fatal:Notpossibletofast-forward,abortinggitpu......
  • 聊聊git push到远程服务器出现RPC failed问题
    前言最近小组成员跟我说,他git提交不了代码。我问了下原因,他说他代码一提交就会报代码语言:txt复制error:RPCfailed;HTTP413curl22TherequestedURLreturnederror:413fatal:theremoteendhungupunexpectedlyfatal:theremoteendhungupunexpected......
  • vscode git 提交不进行commit 校验按钮开启
    第一种方式设置里面搜索gitverify,然后打钩然后git提交这里就有不校验的按钮了第二种方式直接setting.json里添加配置"git.allowNoVerifyCommit":true,......
  • git push 提示 401 Unauthorized while accessing https 的原因及解决方法
       问题报错:error:TherequestedURLreturnederror:401Unauthorizedwhileaccessinggit版本:1.7.1解决方法一:指定用户gitclonehttps://github.com/org/project.git换成gitclonehttps://[email protected]/org/project.git或者gitclonehttps://username:passw......
  • 使用Git创建本地仓库(命令行方式&图形化界面方式)
    1.使用命令行创建本地仓库(1)在空文件夹中点gitbashhere(2)输入gitinit即创建目录2.使用图形界面创建本地仓库(1)一个空文件夹repo1(2)右键→GitGUIHere(3)选择createnewrepository......
  • 利用git推送或拉取代码到远程仓库-整理知识点
    1.注:1)使用gitremoteaddorigin+地址来增加远程仓库,链接远程git仓库时,使用HTTPSurl,一般会结合PAT(personnalaccesstoken)进行身份认证,而使用SSH地址,则不用。2)使用gitclone+地址来克隆远程仓库(默认远程服务器origin)到本地并默认初始化本地仓库、建立本地分支main。2.初......
  • git常用的分支命令
    克隆一个远程仓库:gitclone远程地址显示分支:gitbranch可选标志标志-r:显示远程分支-a:显示所有分支(本地和远程)-v:显示最后一次提交分分支创建一个分支:gitbranch分支名字创建分支并且切换该分支:gitcheckout-b分支名字切换分支:gitcheckout分支名字删除分支:gi......
  • Gitlab添加SSH密钥
    1、首先本地需要下载git,确保右键有gitbash选项2、在C盘用户文件夹下,找到.ssh目录(没有新建)3、在此目录下打开gitbash4、生成密钥ssh-keygen-trsa-b4096-C"[email protected]"ssh-keygen:这是生成SSH密钥对的命令。-trsa:这个选项指定了密钥类型。rsa是一种常用的加密......