Shawn's Blog

使用 git stash save 将暂存区命名

git stash save/apply/pop

在用git的时候经常会有需要临时切分支等操作,但是如果当前工作区进行了修改就不能直接切分支。这时候呢就得把当前的代码暂存起来,可以这么操作:

sh
1git add .
2git stash

这样就吧上次commit到现在的修改都暂存起来了,可以使用git stash show来查看暂存区。我以前就是这样的,每次由两个或是两个以上的stash之后就蒙圈了,不知道那个stash做了哪些改变。虽然git stash show可以看到每个stash修改了哪些文件,但是还是不能准确的定位到自己需要的stash。

后来发现git stash后面还能继续接参数,这里得感谢git plugin for oh-my-zsh。当临时保存一些修改的时候可以这样:git stash save "fix:xxxxx",有多个stash的时候也可以用git stash show来看到每个stash的备注,就方便多了。

sh
1git on new_branch [$?] via simple took 2s
2 git stash show stash@\{0\}
3stash@{0}: On new_branch: feature:xxxxx (38 seconds ago)               stash@{3}: On new_branch: create new file named hello.py (4 days ago)
4stash@{1}: On new_branch: fix:xxxxx (53 seconds ago)                   stash@{4}: WIP on master: 75e1918 add a (7 weeks ago)
5stash@{2}: On new_branch: create file zzz (4 days ago)

其中git stash pop是应用一个stash,并删除这个stash。git stash apply是只应用不删除。

sh
1git on new_branch [$] via simple
2 git stash pop stash@\{0\}
3On branch new_branch
4Changes to be committed:
5  (use "git reset HEAD <file>..." to unstage)
6
7	new file:   a
8
9Dropped stash@{0} (163b1e2391b4c8bd792701ac4318d928e0e12556)
10
11git on new_branch [$] via simple
12 git stash apply stash@\{1\}
13On branch new_branch
14Changes to be committed:
15  (use "git reset HEAD <file>..." to unstage)
16
17	new file:   a

善用git可以大幅提升效率哦

本文标题
使用 git stash save 将暂存区命名
文章作者
Shawn
版权声明
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

如果这篇文章对你有帮助,可以请我喝杯咖啡 ☕

评论