如何备份多个存储区(stash)?

6

我知道我们可以使用git stash show -p > stash.diff来备份一个隐藏的存储区。

现在我想备份至少20个隐藏的存储区。有什么好的方法可以备份所有的隐藏存储区吗?

2个回答

7

这段代码将列出所有现有隐藏数据的ID,然后为每个隐藏数据分别创建差异文件。

for stash in `git stash list | awk -F':' '{print $1}'`
do
    git stash show $stash -p > $stash.diff
done

1
太棒了,这正是我在寻找的。谢谢。 - mmk

0
以下代码片段将把所有的存储内容保存在类似于存储提交信息的文件名下。 不允许使用的文件名字符将被替换为“_”。
for sha in $(git rev-list -g stash)
do
  git show -p $sha > "\`git show -s --format=%B --max-count=1 $sha  | sed 's/[/:\\?*+%]/_/g'\`.patch"
done

在下一个版本中,我只使用藏匿消息的第一行作为文件名:
for sha in $(git rev-list -g stash)
do
  git show -p $sha > "\`git show -s --pretty=format:'%s' $sha  | sed 's/[/:\\?*+%]/_/g'\`.patch";
done

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