【问题标题】:amend commit in Fossil修改 Fossil 中的提交
【发布时间】:2017-05-05 17:49:29
【问题描述】:

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

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

【问题讨论】:

    标签: commit fossil git-amend


    【解决方案1】:

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

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

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

    【讨论】:

    • 他们的立场在某种程度上是有道理的,但它会使简单的操作变得复杂,例如改进提交消息或添加签核行。这是我习惯使用--amend 的目的:润色元数据,而不是提交内容。
    【解决方案2】:

    一种在 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'd - 你可以在 reflog 中看到它。

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

    【讨论】:

      【解决方案3】:

      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
      

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

      【讨论】:

        猜你喜欢
        • 2013-06-24
        • 2021-12-31
        • 1970-01-01
        • 2018-10-18
        • 2021-01-11
        • 2011-04-25
        • 1970-01-01
        • 2017-12-20
        • 2020-04-29
        相关资源
        最近更新 更多