git stash命令的作用是将你的工作目录和暂存区的修改保存起来,以便稍后恢复。这个命令在以下情况下非常有用:
当你正在一个分支上进行工作,但需要切换到另一个分支来修复bug时,可以使用git stash保存当前分支上的修改,然后切换到另一个分支进行工作。
当你正在进行一项工作,但需要紧急修复其他问题时,可以使用git stash保存当前的修改,以便稍后恢复。
下面是使用git stash的基本流程:
保存当前分支上的修改:
git stash
切换到其他分支进行工作
修复bug并提交更改
切换回原来的分支
恢复之前保存的修改:
git stash pop
git stash常用命令:
1.git stash save "message":将当前的修改暂存,并添加一个描述性的消息。
git stash save "Work in progress - fixing bugs"
2.git stash list:列出当前所有的stash记录。
git stash list
3.git stash apply:将最新的stash恢复到当前分支,但不会删除stash记录。
git stash apply
4.git stash pop:将最新的stash恢复到当前分支,并从stash列表中删除该记录。
git stash pop
5.git stash drop:删除最新的stash记录。
git stash drop
6.git stash branch <branch_name>:创建一个新分支,并将stash中的修改应用到新分支上。
git stash branch new-feature
More information: <https://git-scm.com/docs/git-stash>.
- Stash current changes, except new (untracked) files:
git stash push -m optional_stash_message
- Stash current changes, including new (untracked) files:
git stash -u
- Interactively select parts of changed files for stashing:
git stash -p
- List all stashes (shows stash name, related branch and message):
git stash list
- Show the changes as a patch between the stash (default is stash@{0}) and the commit back when stash entry was first created:
git stash show -p stash@{0}
- Apply a stash (default is the latest, named stash@{0}):
git stash apply optional_stash_name_or_commit
- Drop or apply a stash (default is stash@{0}) and remove it from the stash list if applying doesn't cause conflicts:
git stash pop optional_stash_name
- Drop all stashes:
git stash clear