GIT使用不同历史的分支创建拉取请求

时间:2020-02-26 10:03:47

标签: git github

我有master分支。一段时间以来,它已经有一些提交。然后,我从中创建了开发分支。一段时间后,我想将其合并回master,但是将其压缩以使其只有一个提交(当前有很多提交。

在开发中,我创建了一个分支,例如开发固定分支。

然后我删除了开发。 然后,我使用以下命令创建了空开发:

time = transpose(0:10:36000) ;

这创建了一个空的分支,名为develop。一切都很好。

现在我计划从develop-fix-branch创建一个PR->开发并压缩所有提交,希望我只进行一次提交就可以开发,我得到此消息:

没有什么可比较的。开发和开发固定分支是 完全不同的提交历史。

如果只进行一次提交就可以再次开发,然后又将其又合并到一次,又可以将其合并回主域,我该怎么做?

2 个答案:

答案 0 :(得分:1)

这听起来似乎是达成其他目标的某种复杂方式。听起来并不完全正确,实际上有两种常用的挤压历史记录的方法。您可以执行交互式rebase并使用squashfixup(前者会提示您编辑最终压缩提交的提交消息)。

让我们假设您所做的更改是基于当前的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

现在我只有一个提交的大师。