Git interactive rebase-将最新的合并提交与以前的N个提交挤压在一起
我当前的git提交历史记录看起来像-Git interactive rebase-将最新的合并提交与以前的N个提交挤压在一起,git,merge,gitlab,rebase,Git,Merge,Gitlab,Rebase,我当前的git提交历史记录看起来像- git log -4 --graph * commit B |\ Merge: D C | | | | | * commit C | | * | commit D |/ | | * commit E 合并提交B包含(D+C)合并更改之外的一些附加更改 我想将最近的合并提交B与过去的2个提交C和D挤压 我希望我的提交历史看起来像- * commit A (B+C+D) | | | * commit E 使用git reset--soft:
git log -4 --graph
* commit B
|\ Merge: D C
| |
| |
| * commit C
| |
* | commit D
|/
|
|
* commit E
合并提交B包含(D+C)合并更改之外的一些附加更改
我想将最近的合并提交B与过去的2个提交C和D挤压
我希望我的提交历史看起来像-
* commit A (B+C+D)
|
|
|
* commit E
使用
git reset--soft
:查看可接受的答案(您不想设置.git/MERGE\u HEAD
,只需执行软重置以提交D
,然后使用git commit
)进行新提交A
。@torek我进行了软重置并提交了更改。我的本地提交历史记录按预期更改。但我无法将其推送到远程存储库。我收到消息-“一切都是最新的”。您的git push
命令是什么,如果您使用的git push
没有附加参数,那么您的push.default
设置是什么?当前分支的上游设置是什么?(如果您的push.default
未设置,git--version
产生了什么?)使用git reset--soft在对分支进行推送时导致头部分离问题。git reset——软源代码/开发,然后是提交和推送。我能够克服头部分离的问题。git reset--soft
不会分离头部。但是,如果它已经分离,它将像往常一样重置头部,而不移动任何分支名称,这意味着您将继续具有分离的头部。这将解释您看到的行为。使用git reset--soft
:查看(您不想设置.git/MERGE\u HEAD
,只需执行软重置以提交D
,然后使用git commit
)进行新提交A
。@torek我进行了软重置并提交了更改。我的本地提交历史记录按预期更改。但我无法将其推送到远程存储库。我收到消息-“一切都是最新的”。您的git push
命令是什么,如果您使用的git push
没有附加参数,那么您的push.default
设置是什么?当前分支的上游设置是什么?(如果您的push.default
未设置,git--version
产生了什么?)使用git reset--soft在对分支进行推送时导致头部分离问题。git reset——软源代码/开发,然后是提交和推送。我能够克服头部分离的问题。git reset--soft
不会分离头部。但是,如果它已经分离,它将像往常一样重置头部,而不移动任何分支名称,这意味着您将继续具有分离的头部。这可以解释你看到的行为。