我有master分支。一段时间以来,它已经有一些提交。然后,我从中创建了开发分支。一段时间后,我想将其合并回master,但是将其压缩以使其只有一个提交(当前有很多提交。
在开发中,我创建了一个分支,例如开发固定分支。
然后我删除了开发。 然后,我使用以下命令创建了空开发:
time = transpose(0:10:36000) ;
这创建了一个空的分支,名为develop。一切都很好。
现在我计划从develop-fix-branch创建一个PR->开发并压缩所有提交,希望我只进行一次提交就可以开发,我得到此消息:
没有什么可比较的。开发和开发固定分支是 完全不同的提交历史。
如果只进行一次提交就可以再次开发,然后又将其又合并到一次,又可以将其合并回主域,我该怎么做?
答案 0 :(得分:1)
这听起来似乎是达成其他目标的某种复杂方式。听起来并不完全正确,实际上有两种常用的挤压历史记录的方法。您可以执行交互式rebase
并使用squash
或fixup
(前者会提示您编辑最终压缩提交的提交消息)。
让我们假设您所做的更改是基于当前的master
(例如,您已经重新定标;如果没有更改,则可以使用git merge-base --fork-point master
这样的示例来了解ref
应该如何进行交互重置为):
git rebease -i master
另一种选择(我个人出于多种原因更喜欢上述选择)是将分支机构的reflog(软重置)reset
到要进行一次提交的ref
(例如master
来自上例)。
git reset master
git add . # or -u or whatever makes sure correct changes are staged
git commit
您可以push
。
答案 1 :(得分:0)
我意识到自己太复杂了。
我仅删除了.git文件并执行以下操作:
git init
git remote add origin git@github.com:user/repo
git add *
git commit -am 'message'
git push -f origin master
现在我只有一个提交的大师。