- Git 教程
- Git - 主页
- Git - 基本概念
- Git - 环境设置
- Git - 生命周期
- Git - 创建操作
- Git - 克隆操作
- Git - 执行更改
- Git - 审查更改
- Git - 提交更改
- Git - 推送操作
- Git - 更新操作
- Git - 存储操作
- Git - 移动操作
- Git - 重命名操作
- Git - 删除操作
- Git - 修复错误
- Git - 标签操作
- Git - 补丁操作
- Git - 管理分支
- Git - 处理冲突
- Git - 不同的平台
- Git - 在线存储库
- Git 有用的资源
- Git - 快速指南
- Git - 有用的资源
- Git - 讨论
- Git - 波斯语版本
Git - 存储操作
假设您正在为您的产品实现一项新功能。您的代码正在进行中,突然出现客户升级。因此,您必须将新功能的工作搁置几个小时。您不能提交部分代码,也不能放弃您的更改。因此,您需要一些临时空间,可以在其中存储部分更改并稍后提交。
在 Git 中,存储操作会获取修改后的跟踪文件、暂存更改,并将它们保存在一堆未完成的更改中,以便您可以随时重新应用。
[jerry@CentOS project]$ git status -s M string.c ?? string
现在,您想要切换分支以进行客户升级,但您不想提交您一直在做的事情;所以你会隐藏更改。要将新的存储推入堆栈,请运行git stash命令。
[jerry@CentOS project]$ git stash Saved working directory and index state WIP on master: e86f062 Added my_strcpy function HEAD is now at e86f062 Added my_strcpy function
现在,您的工作目录是干净的,所有更改都保存在堆栈中。让我们用git status命令来验证一下。
[jerry@CentOS project]$ git status -s ?? string
现在您可以安全地切换分支并在其他地方工作。我们可以使用git stash list命令查看隐藏更改的列表。
[jerry@CentOS project]$ git stash list stash@{0}: WIP on master: e86f062 Added my_strcpy function
假设您已经解决了客户升级问题,并且您回到新功能上寻找半成品代码,只需执行git stash pop命令,即可从堆栈中删除更改并将它们放入当前工作目录中。
[jerry@CentOS project]$ git status -s ?? string [jerry@CentOS project]$ git stash pop
上述命令将产生以下结果:
# On branch master # Changed but not updated: # (use "git add ..." to update what will be committed) # (use "git checkout -- ..." to discard changes in working directory) # # modified: string.c # # Untracked files: # (use "git add ..." to include in what will be committed) # # string no changes added to commit (use "git add" and/or "git commit -a") Dropped refs/stash@{0} (36f79dfedae4ac20e2e8558830154bd6315e72d4) [jerry@CentOS project]$ git status -s M string.c ?? string