【问题标题】:Git - Pull request with current changes but not previous commitsGit - 拉取当前更改但不包含先前提交的请求
【发布时间】:2015-12-05 17:06:45
【问题描述】:

我从原点创建了一个分支,并对该分支进行了更改。我做了几个提交来向朋友展示我在做什么,但我不希望这些提交在我提出拉取请求时显示在源上。

我怎样才能做到只有一个提交将显示在拉取请求中。

我想做的是创建另一个分支,并将我以前的分支重置为 head.... 但我真的不知道该怎么做。

提前致谢!

【问题讨论】:

    标签: git github git-pull pull-request


    【解决方案1】:

    您要做的是压缩分支上的提交。

    这可以通过(在您要修改的新分支中)键入以下内容来完成:

    $ git rebase -i <your_starting_commit_SHA>
    

    然后您将能够picksquash 提交(或改写提交,以便在压缩后匹配更合适的提交消息)。

    当您执行此交互式 rebase 时,您将遇到以下情况:

    pick <commit1_SHA> <commit1_message>
    pick <commit2_SHA> <commit2_message>
    pick <commit3_SHA> <commit3_message>
    pick <commit4_SHA> <commit4_message>
    # ... so on and so forth
    

    如果您想将所有提交压缩到原始提交中,那么您将在第一次提交时保留pick,然后将剩余的picks 更改为squash。然后,Git 会将 commit2commit3commit4 压缩为 commit1,从而在您的拉取请求之前为您提供 clean 提交历史记录。

    这里的最终结果将是 single 提交,其中包含您改写的提交消息,而不是原来的四个提交(当然,用于说明目的)。

    【讨论】:

    【解决方案2】:

    我会这样做:

    假设您从原点克隆的分支称为 A。我将再次将原点克隆到一个名为 B 的新分支中。然后我将使用 --squash 标志将 A 分支合并到 B 分支(在分支 B : git merge --squash A),因此您在分支 A 中的所有提交都将作为一个提交到分支 B。然后你可以从你的 B 分支发出拉取请求

    【讨论】:

      猜你喜欢
      • 2012-09-08
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      • 1970-01-01
      • 2012-07-03
      • 2014-10-30
      相关资源
      最近更新 更多