Git stash 是一个命令,用于暂时保存未暂存的更改,以便以后恢复。它对于在不丢失更改的情况下切换分支或进行其他操作非常有用。
使用 Git Stash
要使用 Git stash,请运行以下命令:
git stash
这将保存所有未暂存的更改,包括:
- 未跟踪的文件
- 已修改但未暂存的文件
- 暂存但未提交的文件
Git stash 会创建一个补丁文件,其中包含这些更改。补丁文件存储在 .git/stashes
目录中。
要恢复已隐藏的更改,请运行以下命令:
git stash pop
这将将最近隐藏的更改恢复到工作目录。
Git Stash 选项
Git stash 命令有一些选项可用于自定义其行为:
-u
:在隐藏更改之前先更新索引。这将导致已修改但未暂存的文件被暂存。-a
:隐藏所有更改,包括未跟踪的文件。-q
:静默模式,不输出任何消息。-k
:隐藏后保持工作目录干净。-list
:列出所有隐藏的更改。-show
:显示指定隐藏更改的差异。
Git Stash 用例
Git stash 可用于各种场景,包括:
- 切换分支:在切换到另一个分支之前隐藏当前分支上的更改。
- 创建补丁:将一组更改保存为补丁文件,以便以后应用于其他分支。
- 清理工作目录:在进行其他操作(例如重新基础)之前,隐藏未暂存的更改。
- 协作:在与他人协作时,隐藏本地更改以避免冲突。
Git Stash 与 Git Commit 的区别
Git stash 与 Git commit 类似,因为它都用于保存代码更改。但是,它们之间存在一些关键差异:
- 暂存状态:Git stash 保存未暂存的更改,而 Git commit 保存已暂存的更改。
- 持久性:Git stash 中的更改是暂时的,而 Git commit 中的更改是永久性的。
- 工作流程:Git stash 用于在不丢失更改的情况下暂时中断工作流程,而 Git commit 用于永久记录更改。
结论
Git stash 是一个强大的工具,可用于在不丢失更改的情况下管理未暂存的代码更改。通过理解其用途和选项,开发人员可以有效地利用 Git stash 来改善他们的工作流程。