想象一下,我正在 git repo 上的一个探索性分支上工作,它只有一个提交。我决定很快就不需要我的工作,并且我不想创建分支/标签。事实上,我想丢弃这些更改,但以防万一我再次需要它们,我想保存一个补丁。
就本文而言,假设我只有一个要存档的更改:
* 040cc7c (HEAD, ExperimentalBranch) This is where the experiment is
* a29ceb7 (master) This is the main branch
...
我提出的存档解决方案如下:
- 创建一个提交补丁
040cc7c
。 - 将补丁文件存档在某处以进行长期存储。
ExperimentalBranch
从 repo 中删除。
到目前为止,一切似乎都很好,直到几年后我可能想要恢复补丁。它可能会引用不兼容且无法应用的文件/行。为了解决这个问题,我可以查看补丁的父 SHA 并将其应用到那里。
因此,我提出的非归档解决方案如下:
- 结帐 SHA
a29ceb7
。 - 应用补丁。
唯一的问题是,当我创建补丁时,我看到它包含 SHA 040cc7c
,但没有提及a29ceb7
任何地方。040cc7c
在我创建补丁之后的几年里,我可能很难找出父级。此外,因为几年前我删除了分支,我不希望有一个 git 命令可以帮助我发现父级。
创建补丁时,是否有办法确保其父 SHA 也包含在文件中?
我目前的解决方法是重命名补丁以包含父级的 SHA,但这很容易忘记,而且更手动。