Skip to content

git stash 命令语法

git stash 命令在 Git 中用于暂时保存当前工作目录和暂存区的更改,以便您可以在一个干净的工作目录上工作。这个命令非常有用,当你需要切换分支但又不想提交未完成的更改时。

基本语法

git stash [save [<message>]] [<options>]
  • save [<message>]: 可选的子命令和消息,用于保存当前的更改。如果提供了 <message>,它将被用作储藏的描述。
  • [<options>]: 其他选项来修改命令的行为。

常用选项

  1. push [-u | --include-untracked] [-a | --all] [<message>]: 保存当前的更改并可选地包括未跟踪的文件 (-u) 或所有文件 (-a)。
  2. list: 列出所有的储藏。
  3. show: 显示最近储藏的更改。
  4. pop [--index] [<stash>]: 应用指定的储藏并从储藏列表中删除它。如果没有指定 <stash>,默认使用最近的储藏。
  5. apply [--index] [<stash>]: 应用指定的储藏但不从储藏列表中删除它。
  6. drop [<stash>]: 删除指定的储藏。
  7. clear: 删除所有的储藏。

示例

  • 保存当前更改:
    git stash
  • 保存当前更改并附加一条消息:
    git stash save "My stash message"
  • 列出所有储藏:
    git stash list
  • 应用最近的储藏并将其从列表中删除:
    git stash pop
  • 应用特定储藏但保留在列表中:
    git stash apply stash@{1}
  • 删除特定储藏:
    git stash drop stash@{1}
  • 清除所有储藏:
    git stash clear

注意事项

  • 使用 git stash 时,未跟踪的文件默认不会被保存,除非使用 -u-a 选项。
  • git stash popgit stash apply 在应用储藏时可能会遇到冲突。在这种情况下,需要手动解决冲突。
  • git stash pop 将应用并删除储藏,而 git stash apply 仅应用储藏但保留在储藏列表中。
  • 使用 git stash dropgit stash clear 时要小心,因为这些操作是不可逆的。