首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修正化石中的commit

修正化石中的commit
EN

Stack Overflow用户
提问于 2016-12-20 13:31:26
回答 3查看 1.1K关注 0票数 1

在Git中,要更改当前分支的最新提交,请将--amend选项使用为git-commit

化石中最接近的操作是什么?是否有方法将GPG签名添加到未签名的提交(git commit --amend -S)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-20 14:17:10

在“化石”中,没有办法修改提交。正如“从化石中删除内容”中所记载的,

化石被设计成永远保存所有的历史内容。

但是,如果需要,可以回滚提交并使用适当的GPG签名重做。

票数 2
EN

Stack Overflow用户

发布于 2020-03-06 01:23:21

--一种修改化石提交的方法,就像在git中一样。事实上,这个机制是相同的,但是过程(以及所保留的数据)是不同的。

这两种工具都将创建一个新的提交(git不会修改原始提交,而不会修改Both ),区别仅在于原始提交发生了什么。

在git中,旧的提交一直处于悬空状态,直到最终永久删除了(除非标记)。

在fossil中,它被放在一个隐藏的分支上,永久地保留了(但是如果需要的话,您仍然可以查看它)。

使用git amend的过程是:首先进行更改,然后更新回购数据库。在化石中,情况正好相反--这也可以用git完成,如下所示。

fossil (步骤1来自:https://fossil-scm.org/fossil/doc/trunk/www/shunning.wiki):

代码语言:javascript
复制
$ # 1.
$ fossil amend abcd1234 --branch oops --hide
$ fossil up trunk

$ # 2.
$ fossil revert -r abcd1234

$ # 3.
$ $EDITOR the.file
$ fossil commit -m 'my new msg with amended code'

git:

代码语言:javascript
复制
$ # 1.
$ git reset --hard HEAD^

$ # 2.
$ git checkout abcd1234 .

$ # 3.
$ $EDITOR the.file
$ git commit -am 'my new msg with amended code'

在第2步中,git仍然知道旧的提交,因为它还没有gc-你可以在重发中看到它。

git amend只是走捷径,但是对数据的操作是相同的。

票数 3
EN

Stack Overflow用户

发布于 2020-04-17 08:23:33

石化修改还可以只更新提交消息:

代码语言:javascript
复制
    fossil amend COMMIT_ID -m 'my new commit message'

代码语言:javascript
复制
    fossil amend COMMIT_ID -e # launch $EDITOR to revise message

(它们添加了一个带有新/修订消息的控制工件,而Fossil将显示该消息而不是原始消息。)

它还有其他功能:https://fossil-scm.org/fossil/help?cmd=amend

在提交中添加标记的一种可能方法是:

代码语言:javascript
复制
    fossil amend COMMIT_D --tag sign-off=my_name

您可以通过打开清单设置、签出提交、生成PGP/GPG签名来向未签名的提交添加PGP/GPG签名。

代码语言:javascript
复制
    fossil amend COMMIT_ID --tag signature=SIGNATURE

当然,这比修改直接支持的添加签名更难。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41243561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档