stash uncommitted changes
是 Git 中的一个操作,用于临时保存工作目录中的修改(包括未提交的更改),而不将它们提交到当前的分支。当你想切换到其他分支或进行其他操作,但又不想将当前的更改提交或丢失时,git stash
可以帮助你临时“藏起”这些更改,稍后可以再恢复。
详细解释
-
未提交的更改:指你在工作目录中对文件做出的更改,这些更改可能是:
- 修改了已跟踪的文件,但还没有
git add
或git commit
。 - 已通过
git add
暂存,但还没有git commit
。
- 修改了已跟踪的文件,但还没有
-
stash 的作用:
git stash
命令会将未提交的更改(包括暂存和未暂存的修改)保存到一个堆栈中,并将工作目录恢复为干净状态(如同你刚刚检出分支时一样)。- 这些更改被临时存储在 Git 中,稍后可以通过
git stash apply
或git stash pop
将它们恢复回来。
使用示例
-
暂存未提交的更改:
git stash
该命令将暂存当前工作目录的所有未提交更改,并恢复到没有更改的状态。
-
查看 stash 列表:
git stash list
该命令会列出所有被暂存的更改。
-
应用 stash:
git stash apply
该命令会应用最近一次的
stash
,即恢复刚才保存的更改,同时stash
记录还会保留。 -
恢复并删除 stash:
git stash pop
该命令会将最近一次的
stash
应用到工作目录,同时删除该stash
记录。 -
仅暂存未暂存的更改:
如果你只想暂存那些尚未git add
的更改,而不影响已暂存的部分,可以使用:git stash -k
-
清除 stash:
如果你不再需要已保存的stash
,可以清除所有stash
记录:git stash clear
使用场景
- 切换分支:你正在开发某个功能,但突然需要切换到另一个分支修复问题,使用
git stash
将当前的更改存起来,待你切换回该分支时再恢复。 - 临时保存工作:当你还没有准备好提交工作,但又不想丢失当前的更改,
git stash
可以将它们暂时保存。
总结来说,stash uncommitted changes
是一种方便的机制,帮助你在不提交代码的情况下保存未提交的更改,适合在临时中断当前工作或切换任务时使用。