问下大家如何将多个commit合并成一个commit? | laravel | laravel china 社区-江南app体育官方入口

就是我有一个功能,老是搞错了,一个地方反反复复提交了好几次,然后我想把这一个功能就提交一次,相当于需要将多次提交变成一次的?

然后我搜了下,git rebase -i bb5b7599016 ,
然后他将分支变成了其他的了,* (no branch, rebasing shwl-20230407),不知道为什么?

以构建论坛项目 larabbs 为线索,展开对 laravel 框架的全面学习。应用程序架构思路贴近 laravel 框架的设计哲学。
从零开始带你一步步开发一个 go 博客项目,让你在最短的时间内学会使用 go 进行编码。项目结构很大程度上参考了 laravel。
讨论数量: 8

git commit --amend --no-edit

1年前

如果推到远端了, 就别合并了, 如果本地的话, 可以用 git rebase -i head~2 这种方式合并, 进去选p和s

1年前

如果你使用 phpstorm,可以在 vcs 窗口里面按住 ctrl 然后用鼠标左键选中多个 commit 记录,右键选择 squash commits... 可以很方便的处理。

file


如果你的代码已经被推送到远端,那不建议你这样做。

1年前

git rebase -i 然后git push -f 强推

1年前
slowlyo

您可以使用 git rebase -i 改写历史记录,使多个提交合并成一个提交。在这种情况下,您可以使用以下步骤:

  1. 首先,使用 git log 命令列出提交历史记录,并找到需要合并的提交。

  2. 然后,使用 git rebase -i 命令打开交互式改写历史记录的编辑器。在这里, 是您想要修改的提交的父提交的哈希值。在您的情况下,似乎您已经在用这个命令了,所以现在处于交互式编辑器中。

  3. 在编辑器中,将需要合并的提交行的单词 pick 改为 squashfixup。使用 squash 将此提交合并到前一个提交中,并使用提交消息进行合并。使用 fixup 合并提交,但忽略提交消息。如果需要更改提交消息,请使用 reword 命令。

  4. 保存并关闭编辑器。git 将会重写历史记录。

  5. 如果存在冲突,请按照提示解决冲突,然后继续重建基础分支。完成后,您将获得一个新的合并提交。

关于您遇到的问题,“(no branch, rebasing shwl-20230407)” 表示您正在重新设置基础分支。您可以继续解决任何冲突并完成这个命令。 :joy:

1年前
slowlyo (作者) 1年前
1年前
1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
网站地图