手动将GIT分支头部重新命令到现已解决的提交对象



我想重新使用我的git数据库中的提交对象,该对象目前尚未附加到任何分支。

场景如下:让我们称我的最后一个提交A。从A开始,我开始对工作树进行更改,但是很快意识到我在A中有一个错误,需要修复。我修复了错误,并试图修改我的提交,而无需添加自A提交以来工作树的其他任何更改。我通过git reset --soft HEAD^完成了此操作,然后仅上演修复错误所需的内容。然后,我意外地做了git commit -a -c ORIG_HEAD(请注意-a(,而不是进行git commit -c ORIG_HEAD,因此我最终添加了我想保持未分段的所有其他更改。修改后的提交可以称为A',以将其与原始提交区分开。

我有A原始提交对象的SHA1总和,并且所有斑点仍然存在,因为这是最近的,我没有标记任何有效期的东西。我正在考虑简单地编辑.git/refs/heads/branch_name将其指向A,然后根据需要在工作树中进行舞台,然后重新启动提交。

在这种情况下,这是最好的行动方案吗?还是有更好的方法?

you can 重新点您当前的分支名称,但我发现更容易,更安全,只是为了制作 new> new 分支名称:

git branch oops <hash>

您现在拥有分支名称oops记住您手工记住的哈希ID。该名称保护提交(及其所有文件,以及所有其他提交的consit和所有文件(都来自垃圾收集器,或多或少永久地(如该名称或任何其他名称(使它们保持可及。

(用于HEAD的回流和原始分支名称,默认情况下将提交活着至少30天,因此您有那么长的时间来创建新名称。(

最新更新