【问题标题】:Pushing empty commits to remote将空提交推送到远程
【发布时间】:2013-12-06 23:11:12
【问题描述】:

我已将一个提交推送到远程,但现在我意识到提交消息不正确。我想更改提交消息,但 AFAIK 这是不可能的。所以我决定用正确的信息创建空提交:

git commit --allow-empty

推送空提交有什么缺点/后果吗?由于这个空提交,我将来可能会遇到什么问题吗??

【问题讨论】:

标签: git git-commit


【解决方案1】:
git commit --allow-empty -m "Trigger Build"

【讨论】:

  • 虽然此代码可以解决问题,including an explanation 说明如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提出问题的人。请edit您的答案添加解释并说明适用的限制和假设。 From Review
  • -m 有什么作用?
  • -m - 提交消息。 git-scm.com/docs/git-commit
  • 请注意,如果您的 git 索引未指向 HEAD(即您有“添加”文件),这些文件将被提交。您可能需要先执行git reset 来清理索引。请注意,git reset 不会更改工作树的内容,因此您不会丢失工作更改。
【解决方案2】:

你不会面临任何可怕的后果,只是历史看起来有点混乱。

可以更改提交消息

git commit --amend
git push --force-with-lease # (as opposed to --force, it doesn't overwrite others' work)

但是这将用你的远程历史记录覆盖,这意味着如果有人在此期间提取了那个 repo,这个人会很生你的气...

如果您是唯一访问该存储库的人,请执行此操作。

【讨论】:

  • 是的,这就是为什么我更喜欢推空提交
  • @mrutyunjay 如果其他人有机会撤回回购,那么是的,我认为这是一个更好的选择。
  • 你不会面临任何可怕的后果,只是历史看起来有点混乱——多么可怕的后果! ;-)
  • 首选--force-with-lease 以避免丢失合作者的工作。
  • @GabrielePetronella 好笑!哈哈,是的,yours 总是可以打破良好的友谊。
【解决方案3】:

推送提交,无论是否为空,都会导致最终的 git 钩子被触发。这既不能做任何事情,也不能产生惊天动地的后果。

【讨论】:

  • 这是一个被低估的观察结果。是的,空提交可能优于修改推送提交,但如果可能存在挂钩,则不能假定它们没有副作用。
  • 或者,如果您正在测试新的网络挂钩......推送空提交似乎是一个不错的想法
【解决方案4】:

推送空提交有什么缺点/后果吗?

除了极度困惑之外,有些人可能会理解为什么 master 上有一堆没有内容的提交,不是真的。

可以更改您推送到远程的提交,但提交的 sha1(基本上是 id 号)将永久更改,这会改变源代码树——然后您必须执行git push -f 回到远程。

【讨论】:

    【解决方案5】:

    只要你清楚地从空提交中引用另一个提交就可以了。比如:

    Commit message errata for [commit sha1]
    
    [new commit message]
    

    正如其他人所指出的,这通常比强制推送更正的提交更可取。

    【讨论】:

      【解决方案6】:

      至于令人困惑的历史,我有一个最终让未来考古学家的生活更轻松的建议。

      git commit --allow-empty -m "message for commit DEADBEF was wrong. Correct Msg: ..."
      

      其中 DEADBEF 代表带有错误消息的提交的提交哈希 (SHA)。

      或者,如果不可能/允许空提交,则可以创建一个文档

      commitcmets/$SHA.txt

      添加/提交并推送它。

      顺便说一句:无论如何,不​​能拒绝让 git 历史经常令人困惑:)

      【讨论】:

        【解决方案7】:

        这个呢;

         git commit --allow-empty-message -m ''
        

        【讨论】:

          猜你喜欢
          • 2013-04-08
          • 2011-03-13
          • 2017-04-11
          • 2018-11-02
          • 1970-01-01
          • 2013-04-10
          • 2011-03-14
          • 1970-01-01
          • 2014-01-25
          相关资源
          最近更新 更多