【问题标题】:Git merge the two commit messages into one message [duplicate]Git将两条提交消息合并为一条消息[重复]
【发布时间】:2018-04-17 13:30:08
【问题描述】:

我是 GIT 的初学者。我在我的工作项目中做了一些更改,并使用

创建了测试分支
git checkout -b 'test'

我提交了两次更改。

git add .
git commit -m "first commit"
git push --set-upstream origin test

我再次做了一些更改并提交了更改

git add .
git commit -m "second commit"
git push --set-upstream origin test

现在我创建了 pull request 。真正想要的是,我现在有两个提交。当我合并到 master 分支时,我不想看到这两条提交消息,我想将这些消息“第一次提交”和“第二次提交”合并为一条消息并合并到 master 分支。

我尝试了 rebase 和 rest 命令。可能是我使用错误的方式。任何人都可以帮我解决这个问题。

【问题讨论】:

    标签: git github merge gitlab git-merge


    【解决方案1】:

    如果你想将两个最后的提交合并为一个给定名称的提交

    git reset --soft "HEAD^"
    git commit --amend
    

    【讨论】:

    • 谢谢你.. git commit 之后.. 我需要再次推送分支吗?
    • 是的,如果你需要在 github 上更新你的源代码
    • 确保 github 上的最后一次提交是你的并使用 git push --set-upstream origin test --force
    • 发生错误是因为您尝试重命名已推送到 github 的提交
    • 好,小心使用 --force 选项。如果你使用它推送,你将在 github 上获得与本地完全相同的提交
    【解决方案2】:

    由于您想将两个提交合并到一个新分支中作为单个提交,您可以使用this 回答。

    假设您在自己的主题分支中。如果你想合并 最后 2 个提交合并为一个,看起来像个英雄,分支提交 就在您进行最后两次提交之前。

    git checkout -b temp_branch HEAD^2

    然后 squash 提交另一个分支 在这个新分支中:

    git merge branch_with_two_commits --squash

    这将带来 更改但不提交。所以只要提交它们,你就完成了。

    git commit -m "我的消息"

    现在您可以合并这个新的主题分支 回到你的主分支。

    如果您只是想在推送代码之前在当前目录中将两个提交合并为一个,请使用this 回答。

    如果有多个commit,可以使用 git rebase -i squash 两个 提交为一个。

    如果您只想合并两个提交,它们是 “最近的两个”,可以使用以下命令来组合 两个提交合二为一:

    git reset --soft "HEAD^"

    git commit --amend

    可以肯定地说它是重复的,但我希望您有指向您正在寻找的答案的链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 2019-07-26
      • 2014-02-07
      • 2012-07-12
      • 1970-01-01
      相关资源
      最近更新 更多