在Git中,更改当前分支上的最新提交
一个人使用--amend
选项git-commit
。
Fossil 中最接近的操作是什么?在那儿
将GPG签名添加到无符号提交(git commit --amend -S
)的方法?
答案 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
只是一个捷径,但对数据的操作相同。