Git Stash 操作 Git更新操作 Git 移动操作 Git Stash 操作 假设您正在为您的产品实现新功能。您的代码正在进行中,并且突然出现客户升级。因此,您必须将新功能工作搁置几个小时。您不能提交部分代码,也不能丢弃您的更改。所以你需要一些临时空间,你可以存储你的部分更改,然后提交它。 在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 Git更新操作 Git 移动操作