Git 面试题 目录

什么是 Git stash?

推荐答案

Git stash 是一个用于临时保存工作目录中未提交的更改的命令。它允许你在不提交当前更改的情况下切换分支或执行其他操作。使用 git stash 可以将当前的修改保存到一个栈中,工作目录会恢复到上一次提交的状态。之后,你可以通过 git stash applygit stash pop 来恢复这些更改。

本题详细解读

什么是 Git stash?

Git stash 是一个非常有用的工具,它允许你暂时保存当前工作目录中的更改,而不需要提交这些更改。这在以下场景中特别有用:

  1. 切换分支:当你在一个分支上工作,但需要切换到另一个分支时,如果当前分支上有未提交的更改,Git 会阻止你切换分支。这时你可以使用 git stash 来保存这些更改,切换分支后再恢复。

  2. 临时保存工作:如果你正在进行一项复杂的工作,但突然需要处理一个紧急任务,你可以使用 git stash 来保存当前的工作进度,处理完紧急任务后再恢复。

如何使用 Git stash?

  1. 保存当前更改:使用 git stash 命令可以将当前工作目录中的更改保存到一个栈中。你可以使用 git stash save "message" 来添加一个描述信息。

  2. 查看保存的 stash:使用 git stash list 可以查看所有保存的 stash。

  3. 恢复保存的更改:使用 git stash apply 可以恢复最近保存的 stash,而不会将其从栈中移除。如果你想恢复特定的 stash,可以使用 git stash apply stash@{n},其中 n 是 stash 的索引。

    或者:

  4. 恢复并移除 stash:使用 git stash pop 可以恢复最近保存的 stash,并将其从栈中移除。

  5. 删除 stash:如果你不再需要某个 stash,可以使用 git stash drop 来删除它。

  6. 清空 stash 栈:使用 git stash clear 可以清空所有的 stash。

注意事项

  • 未跟踪的文件:默认情况下,git stash 只会保存已跟踪文件的更改。如果你希望保存未跟踪的文件,可以使用 git stash -ugit stash --include-untracked

  • 冲突:在恢复 stash 时,如果与当前工作目录中的更改有冲突,Git 会提示你解决冲突。

通过理解和使用 Git stash,你可以更灵活地管理你的工作进度,避免不必要的提交和分支切换问题。

纠错
反馈