Git – stash操作

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程