Git 在推送之前将多个提交合并为一个

Git 在推送之前将多个提交合并为一个,git,Git,我有一个大师级的分支。我开始在这个分支上开发一个特性(我忘了创建单独的分支,也忘了在这个分支上玩)。在特性实现结束之前,我有一打关于使用虚拟名称等进行主控的提交。。。现在我想把这个功能推到我的主源。但我不想推动整个历史。是否有一种从git日志“回滚”中间层的方法?考虑使用挤压功能的git rebase。请参阅。考虑使用挤压功能的git rebase。请参阅。考虑使用挤压功能的git rebase。请参阅。考虑使用挤压功能的git rebase。请参阅。您要做的是将提交挤在一起。假设你从一开始就做

我有一个大师级的分支。我开始在这个分支上开发一个特性(我忘了创建单独的分支,也忘了在这个分支上玩)。在特性实现结束之前,我有一打关于使用虚拟名称等进行主控的提交。。。现在我想把这个功能推到我的主源。但我不想推动整个历史。是否有一种从git日志“回滚”中间层的方法?

考虑使用挤压功能的git rebase。请参阅。

考虑使用挤压功能的git rebase。请参阅。

考虑使用挤压功能的git rebase。请参阅。

考虑使用挤压功能的git rebase。请参阅。

您要做的是将提交挤在一起。假设你从一开始就做了10次承诺;然后你会做:

git rebase -i HEAD~10
  • -i:交互式重定基址
  • HEAD~10:从当前提交之前的第10次提交开始(HEAD)
现在,您将在一个编辑器中,每个提交都有一行。您应该替换单词
pick
。对于第一行,您将键入
edit
(以便您可以更改提交消息),对于所有其他行,您将键入
fixup
(或
f
)。因此,所有后一种行为将被挤压成第一种行为;并且提交消息将被删除(因此仅保留您编辑的提交消息)

因此,您正在编辑的文件应如下所示:

edit  2fa588e start of devel
fixup c420848 bugfix
f     78c41af bugfix
f     6bff2f0 bugfix blah blah

您要做的是
挤压
您的提交。假设你从一开始就做了10次承诺;然后你会做:

git rebase -i HEAD~10
  • -i:交互式重定基址
  • HEAD~10:从当前提交之前的第10次提交开始(HEAD)
现在,您将在一个编辑器中,每个提交都有一行。您应该替换单词
pick
。对于第一行,您将键入
edit
(以便您可以更改提交消息),对于所有其他行,您将键入
fixup
(或
f
)。因此,所有后一种行为将被挤压成第一种行为;并且提交消息将被删除(因此仅保留您编辑的提交消息)

因此,您正在编辑的文件应如下所示:

edit  2fa588e start of devel
fixup c420848 bugfix
f     78c41af bugfix
f     6bff2f0 bugfix blah blah

您要做的是
挤压
您的提交。假设你从一开始就做了10次承诺;然后你会做:

git rebase -i HEAD~10
  • -i:交互式重定基址
  • HEAD~10:从当前提交之前的第10次提交开始(HEAD)
现在,您将在一个编辑器中,每个提交都有一行。您应该替换单词
pick
。对于第一行,您将键入
edit
(以便您可以更改提交消息),对于所有其他行,您将键入
fixup
(或
f
)。因此,所有后一种行为将被挤压成第一种行为;并且提交消息将被删除(因此仅保留您编辑的提交消息)

因此,您正在编辑的文件应如下所示:

edit  2fa588e start of devel
fixup c420848 bugfix
f     78c41af bugfix
f     6bff2f0 bugfix blah blah

您要做的是
挤压
您的提交。假设你从一开始就做了10次承诺;然后你会做:

git rebase -i HEAD~10
  • -i:交互式重定基址
  • HEAD~10:从当前提交之前的第10次提交开始(HEAD)
现在,您将在一个编辑器中,每个提交都有一行。您应该替换单词
pick
。对于第一行,您将键入
edit
(以便您可以更改提交消息),对于所有其他行,您将键入
fixup
(或
f
)。因此,所有后一种行为将被挤压成第一种行为;并且提交消息将被删除(因此仅保留您编辑的提交消息)

因此,您正在编辑的文件应如下所示:

edit  2fa588e start of devel
fixup c420848 bugfix
f     78c41af bugfix
f     6bff2f0 bugfix blah blah

因为你有12次提交,这可能是最快的

git reset --soft @{u}
git commit -m "YOUR COMMIT MESSAGE"
git push

这将挤压任意数量的提交,而无需每次提交都执行任何操作。

因为您有12次提交,所以这可能是最快的操作

git reset --soft @{u}
git commit -m "YOUR COMMIT MESSAGE"
git push

这将挤压任意数量的提交,而无需每次提交都执行任何操作。

因为您有12次提交,所以这可能是最快的操作

git reset --soft @{u}
git commit -m "YOUR COMMIT MESSAGE"
git push

这将挤压任意数量的提交,而无需每次提交都执行任何操作。

因为您有12次提交,所以这可能是最快的操作

git reset --soft @{u}
git commit -m "YOUR COMMIT MESSAGE"
git push

这将挤压任意数量的提交,而无需在每次提交的基础上执行任何操作。

@{u}
@{upstream}
的缩写,在他的情况下,它应该是
源代码/master
。它将创建一个新的提交,内容是他的最终更改。哦,我明白了。非常聪明,有教育意义。我建议提前进行分支,这样本地存储库就可以保存未来的完整历史。
@{u}
@{upstream}
的缩写,在他的例子中,它应该是
origin/master
。它将创建一个新的提交,内容是他的最终更改。哦,我明白了。非常聪明,有教育意义。我建议提前进行分支,这样本地存储库就可以保存未来的完整历史。
@{u}
@{upstream}
的缩写,在他的例子中,它应该是
origin/master
。它将创建一个新的提交,内容是他的最终更改。哦,我明白了。非常聪明,有教育意义。我建议提前进行分支,这样本地存储库就可以保存未来的完整历史。
@{u}
@{upstream}
的缩写,在他的例子中,它应该是
origin/master
。它将创建一个新的提交,内容是他的最终更改。哦,我明白了。非常聪明,有教育意义。我建议提前进行分支,这样本地存储库就可以为将来保存完整的历史记录。