修改 Fossil 中的提交

问题描述 投票:0回答:3

在 Git 中,更改当前分支上的最新提交 可以使用

--amend
选项来
git-commit

Fossil 中最接近的操作是什么?有没有 一种将 GPG 签名添加到未签名提交的方法 (

git commit --amend -S
)?

commit fossil git-amend
3个回答
4
投票

fossil amend 也可以只更新提交消息:

    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

当然,这比amend直接支持添加签名要难一些。

请注意,tag 命令提供了更多用于向现有提交添加/删除标签的选项。 https://fossil-scm.org/fossil/help?cmd=tag


3
投票

有一种方法可以在 Fossil 中修改提交,就像在 git 中一样。 事实上,机制是相同的,但过程(以及保留的数据)不同。 这两个工具都会创建一个新的提交(git 不会比化石更多地修改原始提交),区别仅在于原始提交会发生什么。

在 git 中,旧的提交会悬空,直到最终永久

删除

(除非已标记)。 在化石中,它被放在隐藏的树枝上并永久

保留

(但如果需要,您仍然可以查看它)。

git amend

的流程是:先进行更改,然后更新repo数据库。 在化石中,相反 - 也可以在 git 中完成,如下所示。


化石(步骤 1 来自:

https://fossil-scm.org/fossil/doc/trunk/www/shunning.wiki

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

吉特:

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

只是走捷径,但对数据的操作是一样的。

    


2
投票
“从 Fossil 中删除内容”

中所述

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

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

© www.soinside.com 2019 - 2024. All rights reserved.