切分支前工作区还有一半没写完,但又不想为了它随便打个临时 commit,可以用 git stash push 先收起来。
环境:Git 2.30+。开个小目录试:
mkdir git-stash-demo && cd git-stash-demo
git init
printf 'base\n' > note.txt
git add note.txt
git commit -m 'init'
printf 'base\nwork in progress\n' > note.txt
git status --short
git stash push -m 'try note change'
git status --short
git stash list
git stash pop
cat note.txt
stash push 之后工作区会干净一点,stash pop 会把刚才那份改动拿回来。
如果只想存某个文件,也可以写成:
git stash push -m 'only note' -- note.txt
我觉得它适合那种“先切过去修个小问题,回来继续写”的场景。只是别把 stash 当长期存档,用多了容易忘,偶尔 git stash list 看一眼比较安心。