Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git get rebase——交互式只显示“noop”并合并所有提交_Git_Merge_Rebase_Cherry Pick - Fatal编程技术网

Git get rebase——交互式只显示“noop”并合并所有提交

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" 这些提交都不是

开发分支比主分支提前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"
这些提交都不是合并提交等

然后执行下一步:

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次提交,但所有提交都会自动合并。与什么合并?