【问题标题】:Override author on git merge在 git merge 上覆盖作者
【发布时间】:2012-03-15 21:13:20
【问题描述】:

git-merge 是否有类似 --author of git-commit 的选项?

我们维护一个临时环境,必须在其中执行一些更改。一些限制使我们只能使用一个 linux 用户来访问暂存环境。

无论如何,我们是一个具有合作主动性的小团队,我们会在提交时告诉谁是作者,使用 --author git-commit 选项。但是,有时我们需要从其他分支合并,这会导致非 ff 合并。这意味着在执行此合并时会执行提交。

在这种情况下,为合并提交手动指定作者的最佳方式是什么?

【问题讨论】:

    标签: git version-control git-branch branching-and-merging git-merge


    【解决方案1】:

    首先,防止合并创建提交:

    git merge --no-commit …
    

    然后,手动提交:

    git commit --author="A. U. Thor <au@th.or>"
    

    【讨论】:

      【解决方案2】:

      如果您已经进行了合并,您可以在之后--amend作者身份。像这样:

      git checkout master
      git merge my_branch
      git commit --amend --author="My Nick <my.adress@email.com>"
      git push origin master
      

      这可以按需要工作,并将指定的作者添加到合并提交中。没有魔法。 :)

      【讨论】:

      • 我觉得你的回答在这里是最完整的,尽管它确实暗示 --amend 是必要的,但不是严格的。
      • 不是吗? git merge 创建一个提交并将该提交的作者更改为 git commit --amend
      • 这并不总是正确的,如果合并是快进,则不会创建提交,因此修改会尝试修改最新的提交。
      【解决方案3】:

      尝试git merge --no-commit ...,然后尝试git commit --author ...

      【讨论】:

        【解决方案4】:

        另一种方法是设置 GIT_AUTHOR_NAME 和 GIT_AUTHOR_EMAIL 环境变量:

        GIT_AUTHOR_NAME="A. U. Thor" GIT_AUTHOR_EMAIL="au@th.or" git merge ...
        

        【讨论】:

        • 这很好用...我不知道你为什么被否决。
        猜你喜欢
        • 1970-01-01
        • 2018-06-16
        • 2013-05-14
        • 2017-06-23
        • 2013-11-12
        • 2020-10-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多