git stash 命令
1. 什么是 git stash
git stash 是 Git 版本控制系统提供的一个命令,用于临时保存修改的工作目录和暂存区的内容,让用户可以切换到其他分支进行工作,而不必提交当前分支上的修改。git stash 可以非常方便地将当前分支的修改藏起来,并且在需要的时候重新应用这些修改。
2. git stash 的常见用法
2.1 保存当前工作目录和暂存区的修改
使用 git stash 命令可以将当前分支上的工作目录和暂存区的修改保存起来,让用户可以在切换分支之前将这些修改隐藏起来。
命令格式如下:
$ git stash
这个命令会将当前分支上的所有修改保存到一个新的 stash 中,并且将工作目录和暂存区恢复到干净的状态。
2.2 查看已保存的 stash
使用 git stash list 命令可以查看当前分支上已保存的 stash 列表。
命令格式如下:
$ git stash list
输出会显示出已保存的 stash 的索引号和对应的描述信息。
示例输出:
stash@{0}: WIP on master: 3123456 Add new feature
stash@{1}: WIP on dev: c987654 Fix a bug
stash@{2}: WIP on feature1: abcd123 Update documentation
2.3 应用已保存的 stash
使用 git stash apply 命令可以将指定的 stash 应用到当前分支上。
命令格式如下:
$ git stash apply <stash>
<stash>
是要应用的 stash 的索引号或者是 stash 的描述信息。如果不指定具体的 stash,那么默认会应用最新的 stash。
使用 git stash pop 命令,可以将指定的 stash 应用到当前分支上,并将这个 stash 从 stash 列表中移除。
命令格式如下:
$ git stash pop <stash>
示例:
$ git stash apply stash@{2}
2.4 删除已保存的 stash
使用 git stash drop 命令可以删除指定的 stash。
命令格式如下:
$ git stash drop <stash>
<stash>
是要删除的 stash 的索引号或者是 stash 的描述信息。如果不指定具体的 stash,那么默认会删除最新的 stash。
使用 git stash clear 命令可以删除当前分支上的所有 stash。
命令格式如下:
$ git stash clear
3. git stash 的高级用法
3.1 保存未暂存的修改
如果有一些修改尚未暂存,可以使用 git stash --include-untracked
命令来保存这些修改。
命令格式如下:
$ git stash --include-untracked
这个命令会将包括未暂存的修改在内的所有修改保存到一个新的 stash 中。
3.2 保存指定的文件或目录的修改
使用 git stash push <pathspec>
命令可以保存指定的文件或目录的修改到 stash 中。
命令格式如下:
$ git stash push <pathspec>
<pathspec>
是要保存的文件或目录的路径。
3.3 创建一个新的分支来应用 stash
可以使用 git stash branch <branchname> [<stash>]
命令来创建一个新的分支,并将指定的 stash 应用到新分支上。
命令格式如下:
$ git stash branch <branchname> [<stash>]
<branchname>
是新分支的名称。
如果不指定具体的 stash,那么默认会应用最新的 stash。
4. git stash 的注意事项
- 使用 git stash 保存的 stash 不会随着提交或合并操作而自动应用或移除。
- 如果在应用 stash 时发生冲突,需要手动解决冲突后再次提交。
- 如果在切换分支时有未提交的修改,Git 会拒绝切换,并给出相应的提示。可以使用 git stash 命令来保存修改,然后切换分支。
5. 总结
git stash 是 Git 提供的一个非常实用的命令,可以帮助我们临时保存修改并切换分支,让我们能够更加灵活地进行开发和版本控制。通过本文的讲解,我们了解到如何使用 git stash 命令来保存、应用和删除 stash,以及一些高级用法的技巧和注意事项。