git 的 stash 用的多吗?拿来干嘛呢?

2022-08-13 10:10:27 +08:00
 andyJado

我之前想干个啥就重开分支.

才学会 stash

5850 次点击
所在节点    git
54 条回复
FrankAdler
2022-08-13 10:15:07 +08:00
临时切走,保留现场,或者想了一个新方案,之前的想保留下来
renmu
2022-08-13 10:15:23 +08:00
你原来在 dev1 分支开发,然后突然要去 dev2 改个 bug ,但是 dev1 分支没开发完不想提交,那就先 stash
xingyue
2022-08-13 10:19:30 +08:00
我一般选择 push 上去,后期再 rebase + push -f ,感觉这样比较保险,保证已有的修改不会掉。
DOLLOR
2022-08-13 10:20:44 +08:00
你正在开发 1.2.0 版本,突然汇报 1.1.0 有 bug 需要紧急修复。此时你的工作空间已经充斥 1.2.0 的杂乱状态了,如果想要保存当前状态,然后清理工作空间,可以考虑办法就是用 stash 。
izzy27
2022-08-13 10:42:21 +08:00
保存代码用,用 git stash 就不用走一遍提交的流程了
PendingOni
2022-08-13 10:52:12 +08:00
可以先 stash 贮存一下现有代码的更改 然后 pull 下当前分支的新内容再 unstash 慢慢地手动 merge 差异的地方
bruce0
2022-08-13 11:12:48 +08:00
楼上说的都很清楚了, 我觉得请有用的,我经常用
daimubai
2022-08-13 11:36:43 +08:00
很常用。尤其是同时一个人负责多个业务模块,经常写到一半要切个分支去改个东西。

还有就是 先 stash 再 pull ,比先 commit 再 pull 可以少个 merge 记录

还有就是 尽量别用 rebase 和 push -f ,碰到这样的“打死”
wudicgi
2022-08-13 11:37:34 +08:00
我用 TortoiseGit 时基本不用这个功能,怕出错,感觉不如建个新的本地临时分支提交一下保险
Edsie
2022-08-13 11:40:18 +08:00
有 Stash 需求的时候,基本都用 IDEA 的 Shelf ,感觉比 Stash 好用
340244120w
2022-08-13 11:43:42 +08:00
我主要就是本地开发的时候,配件文件里大家自己的数据库啊 工作目录啥的可能不一样,再加上不同分支配置文件结构业可能不一样。又不能把自己的提交上去。用 stash 或者 idea 的 shelve [比 stash 好用] 就可以暂存自己的配置文件。哪个分支要用就把对应的文件 unshelve 上去
Rocketer
2022-08-13 12:03:44 +08:00
从来不用,我都是直接 commit ,并在备注中记录正在做什么,还需要做什么等详情。否则万一离开比较久,回来都不知道干什么了。
weakish
2022-08-13 12:26:23 +08:00
有的時候 stash 時間長了會忘了之前 stash 過,所以我也是更多地像 #12 樓那樣直接 commit ,等過後重新切回來寫完後再 amend 下,以保持歷史整潔。

還有一個替代方案是用 worktree 新開一個目錄,這樣可以完整保持現場。

或者也可以在 shell 的命令提示符裏加上顯示倉庫下是否有 stash 的邏輯。
WhateverYouLike
2022-08-13 12:35:01 +08:00
楼上没有用 Github Desktop 的吗?在这个里面,随便切一下分支,它都会问你:“当前的改变是要留在当前分支呢,还是带到你要切过去的分支?”,留在当前分支的话,它就会帮你 stash
rekulas
2022-08-13 12:36:13 +08:00
同 12 13 stash 很少用都是 commit 代替,因为 commit 功能更完善,也有详细的小版本记录,比如我临时离开 commit 下,处理了点其他工作又回来修改会再次临时离开 commit append,每次 commit 也可以查看差异,所以用不上 stash
Knuth
2022-08-13 12:37:57 +08:00
git stash save "stash 也可以备注"
crysislinux
2022-08-13 12:40:52 +08:00
如果要去别的分支我都一般 commit ,message 就写个 saved ,回来之后接着干 reset 一下。我感觉这样好更不容易搞错。
creanme
2022-08-13 13:26:25 +08:00
不知道为啥有时候 git stash ,然后 git pull ,再 git stash pop ,某些文件会变成删除的状态
yeqizhang
2022-08-13 13:30:08 +08:00
如果用 idea ,建议用 shelf ,stash 只能把所有未提交的处理。shelf 可以拆分选择指定的处理
wcp1231
2022-08-13 13:34:32 +08:00
如果用 oh-my-zsh 那么可以用 gwip 和 gunwip 替代,很方便

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872573

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX