我有一个具有如下历史记录的遥控器:
如您所见,O和P是合并提交,并且它们都关闭了它们的旧分支,因此现在只有一个分支。
我想将CDEGJKLN压缩为一次提交,将FHIM压缩为另一次提交,因为它们只是使历史混乱的微小提交。
在本地,我设法使用John O'M的答案中所述的方法压缩CDEGJKLN。对于这个问题,像这样:
git checkout -b squashing-1 N
git reset --soft C~
git commit -m "Squashed history"
git replace N [ID_of_the_commit_i_just_made]
Run Code Online (Sandbox Code Playgroud)
并且可以正常工作,git log从主分支本地正确地报告Q,P,O,X,M,I等(X是新压缩的提交)。
从这里开始,下一步是(1)签出主分支并合并更改,(2)删除临时本地分支,然后(3)将更改推送到远程仓库。但是(1)和(3)报告“ 已经更新”或“ 一切都已更新”,因为对树没有任何实际更改,这正是所有这些要点。
我也尝试过使用git push --force origin main-branch,git push --force-with-lease origin main-branch但是得到了相同的结果:一切都是最新的。
如何正确合并这些历史记录更改并将其推送到BitBucket,而不必重新创建整个存储库?