首页 > 其他分享 >详解 git stash

详解 git stash

时间:2024-02-27 17:57:11浏览次数:13  
标签:git 删除 更改 -- 指定 stash 详解

git stash 详解

git stash 命令及其参数功能。

在 Git 中,stash 是一种暂存工作区更改的方法,它允许您暂时保存未提交的更改,并将当前工作目录恢复到上次提交的状态。这对于需要切换分支处理其他问题、或者当前工作尚未完成但需要清理工作区以拉取或合并其他分支时非常有用。

以下是 git stash 命令的基本用法和参数:

  1. 基本操作:

    • git stash:此命令会将当前工作目录中的所有未提交更改(包括已添加至暂存区的)保存到一个新的 stash 项目中,并重置工作目录为上一次提交的状态。
    • git stash list:显示所有已缓存的 stash 列表及其简短描述。
  2. 应用 stash:

    • git stash apply [stash@{n}]:从 stash 列表中取出并应用指定编号(n)的 stash,如果没有指定,则默认使用最近的一个 stash。注意,这并不会删除stash,它仍然存在于列表中。
    • git stash pop:与 apply 类似,但它会在应用 stash 后立即将其从 stash 列表中移除。
  3. 创建并应用 stash:

    • git stash save "message":可以自定义 stash 的描述信息,并执行 stash 操作。
    • git stash branch <branchname> [<stash@{n}>]:基于某个 stash 创建新的分支,并自动应用该 stash 中的更改。
  4. 查看 stash 内容:

    • git stash show [-p | --patch] [<stash@{n}>]:显示指定 stash 包含的更改详情,如果不指定 stash 编号,则默认显示最近的 stash。加上 -p--patch 参数可以看到差异补丁格式的详细内容。
  5. 删除 stash:

    • git stash drop [<stash@{n}>]:删除指定的 stash,不指定则删除最近的 stash。
  6. 合并 stash:

    • git stash apply --indexgit stash pop --index:如果stash包含索引修改(即暂存区的更改),这个选项会使Git尝试将这些更改精确地应用回暂存区,而不仅仅是工作目录。
  7. 清除所有 stash(谨慎操作):

    • git stash clear:删除所有stash。

请注意,在实际工作中合理使用 stash 功能,尤其是在处理重要变更时确保数据安全,避免因误操作导致代码丢失。同时,结合实际情况灵活运用上述命令和参数,有助于更好地管理和维护你的 Git 工作流程。



欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。

公众号

Don’t reinvent the wheel, library code is there to help.

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(_)

标签:git,删除,更改,--,指定,stash,详解
From: https://www.cnblogs.com/lovebing/p/18037409

相关文章

  • android 混淆规则作用,Android代码混淆详解
    一、混淆的意义混淆代码并不是让代码无法被反编译,而是将代码中的类、方法、变量等信息进行重命名,把它们改成一些毫无意义的名字,同时也可以移除未被使用的类、方法、变量等。所以直观的看,通过混淆可以提高程序的安全性,增加逆向工程的难度,同时也有效缩减了apk的体积。总结如下:1、......
  • Git出现游离分支(HEAD detached from XXXX解决方法)
    1.检出到该提交使用gitreflog查看Git操作历史:如果想要操作这个特定的提交,可以直接检出:gitcheckout16c80e5这将把HEAD指向这个特定的提交,再次进入一个游离HEAD状态。2.创建一个新分支来保存这个提交在这个游离HEAD状态下,创建一个新分支:gitbranchdev-test-16c80e......
  • Git使用
    基本功能:git下拉代码和提交代码基本语法:下拉代码gitclonecode_link-bcolde_branch修改代码提交代码gitadd.gitcommit-m"comments"或者使用TortoiseGit添加备注gitpush(本地仓)或者gitpushoriginHEAD:refs/for/code_branch(产品分支)其他1)撤销提交gitres......
  • git清除本地残余tag,与远端保持一致
    问题场景是git的远端仓库中清除了冗余的tag,但是本地没有清除,想和远端保持一致(当然不保持一致也可以,毕竟是用于记录)。解决这个问题可以这么做:1、gittag-l|xargsgittag-d这一步会把本地的tag全都删掉,不用担心。2、gitpull这一步就会把远程仓库中有的tag全都pull下来,这样......
  • 转:Linux文件权限详解
    Linux文件权限详解_linux文件权限-CSDN博客掌握Linux文件权限,看这篇就够了-知乎(zhihu.com)  ......
  • pom.xml详解
    pom.xml是Maven项目的核心配置文件,用于描述项目的基本信息、依赖关系、构建配置等。下面是对pom.xml文件中常见元素的详解:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocat......
  • Gitlab 16.9.0 用Access Token注册Gitlab Runner
    升级到当前最新版Gitlab之后在“管理中心”的“CI/CD”--“Runners”下,提示以前的那种注册令牌的方式已经过时了。点击右上角按钮后,弹出对话框如下:上图画红框的信息,deprecated是不赞成,反对的意思。就是说注册令牌已经被放弃了,未来将会不支持。暂时还是可以用。点击蓝色按钮:N......
  • [转载]详解Mysql innoDB意向锁的作用
    前言InnoDB支持多粒度锁(multiplegranularitylocking),它允许行级锁与表级锁共存,而意向锁就是其中的一种表锁。意向锁(IntentionLocks)需要强调一下,意向锁是一种不与行级锁冲突表级锁,这一点非常重要。意向锁分为两种:意向共享锁(intentionsharedlock,IS):事务有意向对表中的某......
  • 多线程系列(十) -ReadWriteLock用法详解
    一、摘要在上篇文章中,我们讲到ReentrantLock可以保证了只有一个线程能执行加锁的代码。但是有些时候,这种保护显的有点过头,比如下面这个方法,它仅仅就是只读取数据,不修改数据,它实际上允许多个线程同时调用的。publicclassCounter{privatefinalLocklock=newReentra......
  • 机器学习策略篇:详解单一数字评估指标(Single number evaluation metric)
    单一数字评估指标无论是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,会发现,如果有一个单实数评估指标,进展会快得多,它可以快速告诉,新尝试的手段比之前的手段好还是差。所以当团队开始进行机器学习项目时,经常推荐他们为问题设置一个单实数评估指标。......