Git get rebase——交互式只显示“noop”并合并所有提交
开发分支比主分支提前5次提交:Git get rebase——交互式只显示“noop”并合并所有提交,git,merge,rebase,cherry-pick,Git,Merge,Rebase,Cherry Pick,开发分支比主分支提前5次提交: ce30cbd (HEAD -> dev, origin/dev) disabled debugs for libpid 678b1b2 split functionality to libpid and libaccel 6b3f9e2 direct logger test f5d8841 dev build small changes 2a7c316 Revert "remove Makefile from git" 这些提交都不是
ce30cbd (HEAD -> dev, origin/dev) disabled debugs for libpid
678b1b2 split functionality to libpid and libaccel
6b3f9e2 direct logger test
f5d8841 dev build small changes
2a7c316 Revert "remove Makefile from git"
这些提交都不是合并提交等
然后执行下一步:
git checkout master
git rebase --interactive dev
我只想选择3次提交,而不是5次,但所有提交都会自动合并。
为什么它不起作用以及如何处理
另外,我不想使用cherry-pick,因为它会更改提交哈希。您的重基是不可行的,因为您要求在dev之上重基master,但master在dev后面,所以没有重基 有关技术说明,请参阅将ce30cbd..e0bf1e6重新基址设置到ce30cbd上。ce30cbd..e0bf1e6表示可从e0bf1e6主机访问的提交,但可从ce30cbd dev访问的提交除外。由于所有主机的提交均可从dev访问,因此不存在提交 更多信息,请参阅和 我只想选择3次提交,而不是5次,但所有提交都会自动合并 重新基础不会合并,这必须作为单独的步骤进行 不清楚您想对这些选定的提交执行什么操作,但我假设您想从dev中选择3个提交并将它们放在master上 如果你想扔掉另外两个提交
git checkout dev
git rebase -i master
然后在编辑器中删除不需要的提交。dev将被重写为这三个提交
如果要保留现有的开发人员提交,请首先创建一个新分支,然后重新设置基础
git checkout -b new-dev
git rebase -i master
dev将保持不变,新dev将只包含选定的提交
完成后,将分支合并到主分支中
git checkout master
git merge dev
git co master
git cherry-pick commita commitb commitc
这不会进行合并。因为dev是masterie的一个简单祖先。master上没有更多的提交,它只会快速前进;master将跳转到与dev相同的提交。如果您想要强制合并,请使用git merge-no ff。这对于将一组提交保存为分支中的一个组通常很有用
另外,我不想使用cherry pick,因为它会改变提交哈希
Rebase还将更改提交哈希。Rebase基本上是一系列樱桃精选
。这是Git工作原理的基础。每当您重写一个提交时,提交不会被重写,新的提交将成为其提交散列,并且其所有子代的散列都必须更改
因此,您可以简单地选择三个提交到master
git checkout master
git merge dev
git co master
git cherry-pick commita commitb commitc
请参阅以了解更多信息。您的重新基址是不可操作的,因为您要求在开发人员之上重新基址master,但master在开发人员之后,因此没有任何可重新基址的内容 有关技术说明,请参阅将ce30cbd..e0bf1e6重新基址设置到ce30cbd上。ce30cbd..e0bf1e6表示可从e0bf1e6主机访问的提交,但可从ce30cbd dev访问的提交除外。由于所有主机的提交均可从dev访问,因此不存在提交 更多信息,请参阅和 我只想选择3次提交,而不是5次,但所有提交都会自动合并 重新基础不会合并,这必须作为单独的步骤进行 不清楚您想对这些选定的提交执行什么操作,但我假设您想从dev中选择3个提交并将它们放在master上 如果你想扔掉另外两个提交
git checkout dev
git rebase -i master
然后在编辑器中删除不需要的提交。dev将被重写为这三个提交
如果要保留现有的开发人员提交,请首先创建一个新分支,然后重新设置基础
git checkout -b new-dev
git rebase -i master
dev将保持不变,新dev将只包含选定的提交
完成后,将分支合并到主分支中
git checkout master
git merge dev
git co master
git cherry-pick commita commitb commitc
这不会进行合并。因为dev是masterie的一个简单祖先。master上没有更多的提交,它只会快速前进;master将跳转到与dev相同的提交。如果您想要强制合并,请使用git merge-no ff。这对于将一组提交保存为分支中的一个组通常很有用
另外,我不想使用cherry pick,因为它会改变提交哈希
Rebase还将更改提交哈希。Rebase基本上是一系列樱桃精选
。这是Git工作原理的基础。每当您重写一个提交时,提交不会被重写,新的提交将成为其提交散列,并且其所有子代的散列都必须更改
因此,您可以简单地选择三个提交到master
git checkout master
git merge dev
git co master
git cherry-pick commita commitb commitc
有关详细信息,请参阅。我只想选择3次提交,而不是5次,但所有提交都会自动合并。与什么合并?我只想选择3次提交而不是5次提交,但所有提交都会自动合并。与什么合并?