如何备份git stash内容?

Pol*_*ase 10 git

  • 我有未决的未提交作品
  • 我需要切换到另一个分支进行一些紧急工作
  • 由于我目前的Work in Progress尚未完成,我不想承诺.我用 git stash它放在一边.

此外,我想在共享驱动器上备份该存储内容.只是为了安全.将存储内容归档到文件中的优雅解决方案是什么?

Zby*_*000 15

您可以通过运行show命令获取diff:

git stash show -p > stash.diff
Run Code Online (Sandbox Code Playgroud)

这是您可以用作备份的diff文件.

稍后您可以将diff应用于现有存储库:

git apply stash.diff
# and potentially stash again:
git stash
Run Code Online (Sandbox Code Playgroud)


Tim*_*sen 6

我不想承诺

实际上,git stash通过两次提交(有时)三次来进行操作,所以如果你把你的工作藏起来,你可能甚至不知道它.但是大多数时候做出临时提交并没有错.只需添加您当前的工作,然后通过以下方式进行临时提交:

git commit -m 'WIP'
Run Code Online (Sandbox Code Playgroud)

然后,您可以将分支推送到存储库,这应该用作备份.当您返回完成工作时,您可以通过以下方式修改该临时提交:

git commit --amend
Run Code Online (Sandbox Code Playgroud)

随意将消息更改为更有意义的消息,但无论如何,WIP消息可以作为提醒.

如果您正在处理的分支可以由其他人共享,那么您可以将临时提交的分支推送到不同的位置作为备份,例如

git push origin local_branch:some_other_location
Run Code Online (Sandbox Code Playgroud)