【发布时间】:2019-02-03 06:09:01
【问题描述】:
我有两个存储库副本,每个副本都有几十个隐藏状态(stash@{0}、stash@{1}、...)。
我需要删除其中一个副本,并且我想将所有隐藏的更改从我正在删除的副本转移到我将保留的副本。我想保留所有隐藏状态的父母和日期的所有信息,以及索引的状态。
我一直在阅读文档,但找不到任何简单/直接的方法来做到这一点。有可能吗?
更新 1:我希望将更改保留为隐藏状态而不是提交的原因之一是,通过使用 --index 标志,我可以检索为提交暂存的两个更改和工作目录的变化。如果我创建一个提交,我还将销毁隐藏状态的信息,其中父、索引和工作副本都彼此不同。我的隐藏状态通常对应于远未编译、尚未准备好提交的初步测试工作,目前我没有时间将其中的数十个整理出来。
更新2:我想我知道如何查看我要备份的信息,例如,
$ git show stash{5}
commit eb5731e828f467dbe9214d0e6a350f33898c1363
Merge: c9608582 1d6cb78d
Author: Author <author@example.com>
Date: Wed Sep 20 18:54:51 2017 +0100
清楚地产生工作目录状态的id(commit行)和日期,Merge:行中的id是父提交id和索引的id。
我不知道如何将所有这些信息传输到存储库的第二个副本,作为它的新隐藏状态。
更新 3:澄清:存储库的两个副本都已隐藏状态。
【问题讨论】:
-
您可能应该将存储转换为单独分支上的正确提交。存储不打算共享或转移。
-
我知道存储并不容易/意味着共享或转移,但考虑到 git 工具的灵活性,我希望这样做是可能的。
-
本地分支应该用于存储实验性的、未准备好的工作等。在它们完成并合并到您的开发或其他“官方”之前,您不必将这些本地分支推送到任何地方" 分支。
-
@phd:感谢您的参考,但据我所知,该问题并未讨论保留相应索引状态的可能性,并且似乎没有一个答案可以保留它们。跨度>