1

我有两个分支,master并且feature.

我完成了工作feature,所以这个分支有很多提交,但我不想按原样发布它。我想创建一个名为的分支feature_clean,其中包含所有修改feature但具有更好的提交。

我尝试了以下方法:

git checkout -b feature_clean master
git checkout feature
git rebase --interactive feature_clean
# reorganize commits etc, save and close editor

, 这创建feature_clean正确但它也修改了feature. 事实上,两个分支是平等的。

我做错什么了?我现在想保持feature原样(我会在经过feature_clean适当的测试和批准后删除它)。

4

2 回答 2

1

你有你的变基命令错误;)你告诉 git 将当前分支(HEAD在这种情况下feature)变基在feature_clean. 我认为你真正想做的是:

git checkout -b feature_clean feature
git rebase -i master

feature_clean即从on重放提交masterfeature仍将指向旧的提交。

git rebase master是 的简写:接受和git rebase --onto master master HEAD之间的所有提交(可从 到达,但不能从)并将它们粘贴到masterHEADHEADmastermaster

于 2011-08-10T21:00:30.960 回答
0
  1. 签出您的功能分支
    git checkout feature

  2. 创建新的 feature_clean 分支
    git checkout -b feature_clean

  3. 将该分支重新定位到您从 master 中分离出来的位置
    git rebase -i --onto shaOfSplit shaOfSplit feature_clean

  4. 做你的交互式变基

在你的变基结束时,你将有两个从同一点断开的分支。 feature_clean将是一个重新定位的版本feature

于 2011-08-10T21:15:56.377 回答