长期保存git stash版本

5

如何“保存”git stash并长期储存,以便将来可以访问它(可能是将其保存在某个补丁文件中),即使stash本身被清除了。例如,如何将特定的stash保存到文件中,以便我可以清除当前的stashes,并且如果我执行"git stash list"时不会显示任何内容,但如果我想要访问保存的stash修订版,我仍然能够访问它。


我认为最好的方法是使用补丁文件。https://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git - daniloisr
在我看来,创建补丁文件需要提交……有没有一种方法可以直接从存储/未提交的更改中创建补丁文件,这样我就不必先提交它们了? - pillarOfLight
2
你可以使用 $ git diff 创建补丁,所以不必使用 stash,只需使用 $ git add .$ git diff --cached --no-prefix > patch_name.patch。然后,你就会得到一个新的补丁。之后,你可以重置你的文件,并使用 $ patch -p0 < patch_name.patch 应用这个补丁。 - daniloisr
1个回答

4
你要求获取一个文件,但我建议你使用git来保存修改集合——这样更容易跟踪,而不是使用单个文件。
创建一个新分支。
git checkout -b saved_stash

弹出stash,添加并提交

git stash pop
git add .
git commit -m 'save stash for later'

当你想再次使用它时,请检出分支,重置提交并再次添加到暂存区。
git checkout saved_stash
git reset --soft HEAD~1
git stash

此时,您应该拥有与您最初保存的相同的存储状态。

(这是在快速操作中键入的,命令可能略有偏差-希望只是轻微的偏差)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接