git stash其他用法及实例

147 阅读3分钟

除了基本的 git stashgit stash pop 外,还有许多其他有用的用法和选项。以下是一些常见的 git stash 用法和选项:

1. git stash 基本用法

git stash

将当前工作目录和暂存区的修改暂存起来,并恢复工作目录到上一次提交的状态。

2. git stash pop

git stash pop

从栈中应用最近一次的暂存,并将其从栈中移除。

3. git stash apply

git stash apply

从栈中应用最近一次的暂存,但不将其从栈中移除。这在你希望应用相同的暂存多次时非常有用。

4. git stash list

git stash list

显示所有暂存的列表,包括每次暂存的描述和哈希值。

5. git stash show

git stash show

显示最近一次暂存的摘要,包括哪些文件被修改了。

git stash show -p

显示最近一次暂存的详细信息,包括具体的差异。

6. git stash save "message"

git stash save "Work in progress on feature XYZ"

使用自定义消息保存暂存,以便你更容易识别每个暂存的内容。

7. git stash branch

git stash branch new-branch-name

创建一个新的分支,并将最近一次的暂存应用到该分支。这对于你希望在一个新的分支上继续工作而不影响当前分支时非常有用。

8. git stash clear

git stash clear

清空所有暂存的内容。请注意,这个操作不可逆,请谨慎使用。

9. git stash drop

git stash drop

移除最近一次的暂存。

git stash drop stash@{index}

移除指定的暂存(例如 stash@{1})。

10. git stash -ugit stash --include-untracked

git stash -u

暂存未跟踪的文件(未 git add 的文件)。

11. git stash -agit stash --all

git stash -a

暂存所有文件,包括未跟踪和忽略的文件。

使用示例

1. 暂存当前工作并切换分支

# 暂存当前工作
git stash

# 切换到另一个分支
git checkout another-branch

# 完成任务后切换回原来的分支
git checkout original-branch

# 恢复之前的工作
git stash pop

2. 创建新分支并应用暂存

# 暂存当前工作
git stash save "Work in progress on feature XYZ"

# 创建新分支并应用暂存
git stash branch feature-branch

3. 清理暂存

# 查看所有暂存
git stash list

# 移除特定的暂存
git stash drop stash@{0}

# 清空所有暂存
git stash clear

注意事项

  • 暂存内容git stash 只会暂存被 Git 跟踪的文件,除非使用 -u-a 选项。
  • 合并冲突:恢复暂存时可能会遇到合并冲突,需要手动解决。
  • 保存进度:在使用 git stash 前,确保你已经提交了所有不希望丢失的修改。