git stash
此外,我想备份隐藏的内容在一个共享驱动器上。只是为了安全。什么是优雅的解决方案来存档隐藏的内容在文件上?
zzlelutf1#
您可以通过运行show命令来获取差异:
git stash show -p > stash.diff
这是您可以用作备份的diff文件。稍后,您可以将差异应用到现有存储库:
git apply stash.diff # and potentially stash again: git stash
stszievb2#
我不想犯实际上,git stash通过提交两次(有时是三次)来运行,所以如果你隐藏了你的工作,你可能在不知道的情况下提交了。但是大多数时候临时提交并没有什么错。只需添加你当前的工作,然后通过以下方式进行临时提交:
git commit -m 'WIP'
然后,你可以将分支推送到仓库,这可以作为一个备份。当你回来完成工作时,你可以通过以下方式修改临时提交:
git commit --amend
您可以随意将消息更改为更有意义的内容,但在任何情况下,WIP消息都可以作为提醒。如果您正在处理的分支可以被其他人共享,那么您可以将您的分支与临时提交一起推送到不同的位置作为备份,例如:
WIP
git push origin local_branch:some_other_location
qzwqbdag3#
正如Tim Biegeleisen所说,git stash实际上创建了一个提交--它只是不移动任何分支。你可以通过stash@{0}访问你最后一次隐藏的内容(倒数第二次通过stash@{1}等... git stash list查看你可以访问的内容的完整列表)。我认为最直接的方法是让储藏更持久:创建一个新分支:
stash@{0}
stash@{1}
git stash list
$ git branch wip/adding/new/feature stash@{0}
现在,有一个分支指向它,这个隐藏的内容不会过期,当你克隆或从这个repo获取时会被传输,等等。备份存储库最简单的方法是克隆它:
$ cd path/to/external/drive $ git clone my/repo # you can then update your backup by running : $ git fetch # from the clone
这将保存所有分支和标签定义在你的原始repo.
sbdsn5lh4#
扩展了齐布内克的答案。如果你想备份所有的stashes而不提交或者创建临时分支:1.计算藏匿数量git stash list | wc -l1.执行for i in {0..n}; do $(git stash show -p stash@{$i} > stash_$i.diff); done
git stash list | wc -l
for i in {0..n}; do $(git stash show -p stash@{$i} > stash_$i.diff); done
q0qdq0h25#
我通过以下操作成功地备份了一个隐藏文件(Git扩展使用的文件和路径):
要恢复这些文件,请将您备份过的文件复制到上面提到的文件夹中。之后,您就可以通过Git扩展使用这些文件了。
z9zf31ra6#
另一个解决方案是在另一个时间将存储库克隆到磁盘上的另一个位置,例如/tmp。这样,你就可以勾选上面的所有方框,你就不必隐藏任何东西。两全其美。
/tmp
6条答案
按热度按时间zzlelutf1#
您可以通过运行show命令来获取差异:
这是您可以用作备份的diff文件。
稍后,您可以将差异应用到现有存储库:
stszievb2#
我不想犯
实际上,
git stash
通过提交两次(有时是三次)来运行,所以如果你隐藏了你的工作,你可能在不知道的情况下提交了。但是大多数时候临时提交并没有什么错。只需添加你当前的工作,然后通过以下方式进行临时提交:然后,你可以将分支推送到仓库,这可以作为一个备份。当你回来完成工作时,你可以通过以下方式修改临时提交:
您可以随意将消息更改为更有意义的内容,但在任何情况下,
WIP
消息都可以作为提醒。如果您正在处理的分支可以被其他人共享,那么您可以将您的分支与临时提交一起推送到不同的位置作为备份,例如:
qzwqbdag3#
正如Tim Biegeleisen所说,
git stash
实际上创建了一个提交--它只是不移动任何分支。你可以通过
stash@{0}
访问你最后一次隐藏的内容(倒数第二次通过stash@{1}
等...git stash list
查看你可以访问的内容的完整列表)。我认为最直接的方法是让储藏更持久:创建一个新分支:
现在,有一个分支指向它,这个隐藏的内容不会过期,当你克隆或从这个repo获取时会被传输,等等。
备份存储库最简单的方法是克隆它:
这将保存所有分支和标签定义在你的原始repo.
sbdsn5lh4#
扩展了齐布内克的答案。
如果你想备份所有的stashes而不提交或者创建临时分支:
1.计算藏匿数量
git stash list | wc -l
1.执行
for i in {0..n}; do $(git stash show -p stash@{$i} > stash_$i.diff); done
q0qdq0h25#
我通过以下操作成功地备份了一个隐藏文件(Git扩展使用的文件和路径):
要恢复这些文件,请将您备份过的文件复制到上面提到的文件夹中。之后,您就可以通过Git扩展使用这些文件了。
z9zf31ra6#
另一个解决方案是在另一个时间将存储库克隆到磁盘上的另一个位置,例如
/tmp
。这样,你就可以勾选上面的所有方框,你就不必隐藏任何东西。
两全其美。