介绍:
git stash 作用是备份当前“工作目录”的内容,将该备份保存到Git栈中,并从最近的一次提交中读取相关内容,让工作区保持和上次提交的内容一致。 man git stash将其解释为两步,第一步是保存当前工作目录中的内容到一个新的stash,第二步执行 git reset --hard。
git stash pop:从Git栈中读取最近一次保存的内容,恢复工作目录中的相关内容。
git stash list:显示Git栈内的所有备份,进一步利用 git stash pop XXX 读取Git栈内中某一指定的备份。
git stash clear:清空Git栈。
此外还有,git stash drop,git stash save等
适用场合:
使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码 commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实
如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用'git stash'就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修 Bug,等到修完Bug,提交到服务器上后,再使用'git stash apply'将以前一半的工作应用回来。也许有的人会说,那我可不可以多次将未提交的代码压入到栈中?答案是可以的。当你多次使用'git stash'命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,'git stash list'命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用'git stash apply stash@{1}'就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用'git stash clear'来将栈清空。
对当前工作目录进行git stash之后,在进行git stash pop的时候,也有可能会像 git merge一样出现冲突。
例如:工作目录中有一test.txt,在master分支下,对test.txt的第一行进行了修改。此时,要先修复另一bug,所以要 git stash。由于修改该bug时,也需要修改test.txt的第一行,这就与git stash之前在test.txt上有了冲突。当进行git stash pop的时候,会提示有冲突,需要手动进行修改。
看上去完全可以利用git branch来代替git stash,但正如前面“适用场合”中说的,利用 git stash 可以减少不必要的记录,使得查看log时,会更省心。
git stash 主要处理未commit时的现场保存,如果已经commit的了,branch更适合一些。
总的来说,git很灵活,正是由于它太灵活,以致于会有一些相互覆盖的功能,例如,若工作目录、暂存区以及本地数据目录中有一文件(其余都相同),在三个区域中内容各不相同,git reset --hard,会将三个区域中的这个文件都与本地数据目录中的这个文件相同,但用git checkout HEAD -- file,也会使三个区域中的文件保持一致。再如,git reset --hard <branch> 与 git checkout <branch> 的作用效果又是一样的。这正是导致一些命令看似相同,不容易让人区分的原因。
more:
Git Stash用法
git-stash vs. git-branch
分享到:
相关推荐
Git Learn Version Control with Git A step-by-step Ultimate beginners Guide 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Git Stash是Git版本控制系统中的一个非常实用的功能,它允许你在不提交更改的情况下保存工作现场,然后切换到其他分支或进行其他操作。这个功能对于多任务处理或在紧急修复时非常有用。以下是对"git stash 缓存使用...
Git Learn Version Control with Git A step-by-step Ultimate beginners Guide 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn...
Git Stash 的理解和应用场景 Git Stash 是 Git 中一个非常有用的命令,它可以将当前工作进度保存起来,以便在未来某个时候重新应用这些修改。下面我们将详细介绍 Git Stash 的理解和应用场景。 什么是 Git Stash?...
然而,原始的Git stash命令并不支持对stash进行命名,这使得在管理多个stash时可能会遇到困扰。针对这一问题,"Ruby-BigStash"应运而生,它是一个增强版的git stash工具,允许用户为每个stash赋予一个自定义的名称。...
Git Stash 是 Git 版本控制系统中一个非常实用的工具,它允许你在不提交改动的情况下暂时存储工作区的更改,以便于切换到其他分支或处理紧急事务。在深入理解各个参数之前,我们先来了解 Git Stash 的基本概念。 1....
Git Learn Version Control with Git A step-by-step Ultimate beginners Guide 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
此外,还需要注意的是,在使用Git时,需要了解一些基本的Git命令,例如git stash、git pull、git add、git commit等,以便更好地使用Git解决冲突。同时,也可以查看一些相关的参考文档,以便更好地理解Git的使用。
Git stash 是一个强大的工具,它允许开发者在不提交本地更改的情况下切换到其他分支或保存工作现场。这在处理紧急情况,比如修复生产中的bug,或者需要在不同任务之间快速切换时特别有用。以下是对 `git stash` 命令...
因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助...
git视频教程.4.7.Git 命令 - git log、git stash、git tag.mp4 git视频教程.5.1.Git 命令 - git fetch.mp4 git视频教程.5.2.Git 命令 - git pull.mp4 git视频教程.5.3.Git 命令 - git push.mp4 git视频教程.5.4.Git ...
"Learn Version Control with Git" is a beginner-friendly step-by-step course. The book doesn't require a deep technical background. Instead, it's aimed at beginners of version control and/or ...
- `git stash drop` 或 `git stash pop` 取消暂存并应用最后一个暂存的改动 **团队开发及操作** - `git clone` 从远程仓库克隆项目到本地 - 开发流程:`git add`, `git commit`, `git pull` (rebase), `git push` ...
Git-2.30.2-64-bit是Git的一个稳定版本,特别指出的是,这个版本与Windows 11操作系统兼容,解决了部分用户在新系统环境下可能遇到的兼容性问题。 Git的核心特性包括: 1. 分布式:每个开发者的本地机器上都有一个...
此外,Git还有许多高级特性,如Stash(暂存区)、Rebase(变基)、Submodule(子模块)等,对于协同开发和项目管理非常有用。 总之,Git是开发者必备的工具,它强大的版本控制功能可以帮助团队有效地管理代码,跟踪...
Git 常用命令 Git 是一个版本控制系统,广泛应用于软件...11. Git 查看命令 使用 git status 命令可以查看当前分支的状态。使用 git branch 命令可以查看当前分支。使用 git checkout dev 命令可以切换到 dev 分支。
- `git stash apply [stashid]`:恢复指定stash的工作进度。 - `git stash drop [stashid]`:删除指定stash。 - `git stash pop [stashid]`:恢复指定stash并将其删除。 #### 九、远程仓库操作 Git的强大之处在于...
git stash pop # 将最近一次的stash应用到当前分支并删除这个stash ``` - **`git pull origin master`**:这是一条常见的命令,用于从远程仓库获取最新的更改并将其合并到本地分支。 - **`git add`**:此命令...
Git是世界上最流行的分布式版本控制系统,它允许开发人员协作开发代码并跟踪每一次更改。"git压缩包下载git下载"这个标题和描述可能指的是提供Git的安装程序压缩包的下载服务。在本篇中,我们将深入探讨Git的核心...
2. **Stash**:`git stash`可以暂存未提交的更改,方便切换到其他分支或处理紧急问题。 3. **Cherry-pick**:`git cherry-pick`可以将某个特定的提交应用到其他分支,用于共享或复制功能。 4. **Submodule**:Git...