在Fossil中修改提交

时间:2016-12-20 13:31:26

标签: commit fossil amend

在Git中,更改当前分支上的最新提交 一个人使用--amend选项git-commit

Fossil 中最接近的操作是什么?在那儿 将GPG签名添加到无符号提交(git commit --amend -S)的方法?

3 个答案:

答案 0 :(得分:2)

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

    fossil amend COMMIT_ID -m 'my new commit message'

    fossil amend COMMIT_ID -e # launch $EDITOR to revise message

(这些方法会添加一个控件工件,其中包含Fossil将显示的新消息/修订过的消息,而不是原始消息。)

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

向提交添加签名的一种可能方法是:

    fossil amend COMMIT_D --tag sign-off=my_name

您可以通过以下方式将PGP / GPG签名添加到未签名的提交中:打开清单设置,检查该提交,生成PGP / GPG签名,然后

    fossil amend COMMIT_ID --tag signature=SIGNATURE

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

答案 1 :(得分:1)

在化石中,没有办法修改提交。如“Deleting content from Fossil”中所述,

  

Fossil旨在永久保留所有历史内容。

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

答案 2 :(得分:1)

有一种 方式可以修改Fossil中的提交,就像git中一样。实际上,机制是相同的,但是过程(以及剩余的数据)是不同的。

这两个工具都会创建一个新的提交(git对原始提交的修改不超过对化石的修改),区别仅在于原始提交发生了什么。

在git中,旧提交一直悬而未决,直到最终被删除(除非已标记)。

在化石中,它放在一个隐藏的分支上并永久保留(保留)(但如果需要,您仍然可以查看它)。

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

化石(来自https://fossil-scm.org/fossil/doc/trunk/www/shunning.wiki的第1步):

$ # 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:

$ # 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认可-您可以在reflog中看到它。

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