Git:在远程仓库上隐藏提交消息

时间:2010-06-09 17:36:59

标签: git

在我的本地机器上使用git时,我通常会投入很多。为此,我使用主题分支。然后我将这样一个主题分支合并到一个名为develop的分支中,该分支将被推送到远程仓库。

我总是与--no-ff合并,所以他们总是提交我的整个主题。

现在我只想用指定的描述推送这个提交,我在整个分支中做了什么。

我更喜欢这个,因为您可以查看服务器上的提交历史记录,直接查看发生的情况,而不需要阅读每一次提交。

对于我的本地工作,如果我想重置我的分支或类似的东西,我将拥有完整的历史记录。

我不知道他们是否可以通过git这样做,但这对我来说非常有用,所以我试试问你。

3 个答案:

答案 0 :(得分:1)

根据您的描述,看起来您只需要推送您的开发分支,而不是推动您的主题分支。

  • 您的devel分支将包含一个提交(在与主题分支合并时创建),该提交总结了已完成的工作。
    该提交将被推到遥控器上 诀窍是,它不应该链接到您的主题分支(或者它的历史也被发布) git merge --squash对于生成单个提交非常有用。
  • 您的topic分支仍然未发布(未推送)并包含所有详细历史记录 例如,您可以通过hook on the remote side强制执行此操作,以拒绝任何您不希望被推送到(远程)仓库的分支。

在评论中提及Daniel Yankowskygit merge --squash有效,但“失去了变化血统”。
这就是为什么你可以设置2'开发'分支。

      t--t--t--t (topic)
     /
 x--x (devel)
 \
  p--p (devel_pub)
  • 一个用于合并目的(经典的“devel”分支)
  • 一个用于发布目的('devel_pub'),您执行merge --squash
                  (topic)
                    |
     x--x--t--t--t--t--d (devel)
     \
      p--p--T (devel_pub, with T being "git merge --squash topic")

答案 1 :(得分:1)

我不知道有什么方法可以做你正在描述的内容,我怀疑它是在反对git的设计。听起来你想总结一整套提交。如果与--no-commit选项合并,并编辑合并提交消息以汇总分支的更改,该怎么办?

答案 2 :(得分:0)

听起来您可能希望在推送之前使用git rebase重写本地历史记录。

为什么你不想在偏远的一面呢?它似乎并不重要。只需将远程端设置为仅显示一个具有合并提交的分支。