什么是 stash uncommited change

stash uncommitted changes 是 Git 中的一个操作,用于临时保存工作目录中的修改(包括未提交的更改),而不将它们提交到当前的分支。当你想切换到其他分支或进行其他操作,但又不想将当前的更改提交或丢失时,git stash 可以帮助你临时“藏起”这些更改,稍后可以再恢复。

详细解释

  1. 未提交的更改:指你在工作目录中对文件做出的更改,这些更改可能是:

    • 修改了已跟踪的文件,但还没有 git addgit commit
    • 已通过 git add 暂存,但还没有 git commit
  2. stash 的作用

    • git stash 命令会将未提交的更改(包括暂存和未暂存的修改)保存到一个堆栈中,并将工作目录恢复为干净状态(如同你刚刚检出分支时一样)。
    • 这些更改被临时存储在 Git 中,稍后可以通过 git stash applygit stash pop 将它们恢复回来。

使用示例

  1. 暂存未提交的更改

    git stash
    

    该命令将暂存当前工作目录的所有未提交更改,并恢复到没有更改的状态。

  2. 查看 stash 列表

    git stash list
    

    该命令会列出所有被暂存的更改。

  3. 应用 stash

    git stash apply
    

    该命令会应用最近一次的 stash,即恢复刚才保存的更改,同时 stash 记录还会保留。

  4. 恢复并删除 stash

    git stash pop
    

    该命令会将最近一次的 stash 应用到工作目录,同时删除该 stash 记录。

  5. 仅暂存未暂存的更改
    如果你只想暂存那些尚未 git add 的更改,而不影响已暂存的部分,可以使用:

    git stash -k
    
  6. 清除 stash
    如果你不再需要已保存的 stash,可以清除所有 stash 记录:

    git stash clear
    

使用场景

  • 切换分支:你正在开发某个功能,但突然需要切换到另一个分支修复问题,使用 git stash 将当前的更改存起来,待你切换回该分支时再恢复。
  • 临时保存工作:当你还没有准备好提交工作,但又不想丢失当前的更改,git stash 可以将它们暂时保存。

总结来说,stash uncommitted changes 是一种方便的机制,帮助你在不提交代码的情况下保存未提交的更改,适合在临时中断当前工作或切换任务时使用。

posted @ 2024-09-14 13:48  管道工人刘博  阅读(7)  评论(0编辑  收藏  举报