将已提交但未推送的更改移动到拉取后的新分支

625

我已经做了不少的工作("您的分支领先于'origin/master' 37 次提交。"), 这些工作应该建立一个自己的分支而不是放到master分支中。这些提交只存在于我的本地机器上,没有被推送到origin,但情况有些复杂,因为其他开发人员一直在向origin/master推送更改。

如何将我的37个本地提交移动到一个新分支中?根据文档,似乎git rebase --onto my-new-branch master...origin/master 应该可以实现,但两者都只给我返回错误信息"fatal: Needed a single revision"。 man git-rebase 对提供给rebase的修订版本没有任何说明,并且它的示例也没有这样做,所以我不知道如何解决这个错误。

(注意,这不是Move existing, uncommited work to a new branch in GitHow to merge my local uncommitted changes into another Git branch?的重复问题,因为这些问题涉及的是本地工作树中未提交的更改,而不是已经本地提交的更改。)


2
看看这个解决方案。看起来很简单和干净。 - Tony
12个回答

0
  1. 获取源代码的最新副本

    git clone ........

  2. 从所需位置创建分支

    git checkout {position} git checkout -b {branch-name}

  3. 添加远程仓库

    git remote add shared ../{original sources location}.git

  4. 获取远程源代码

    git fetch shared

  5. 检出所需分支

    git checkout {branch-name}

  6. 合并源代码

    git merge shared/{original branch from shared repository}


0
只需将原始本地分支合并到一个新的分支中吗?
git checkout -b new_branch
git merge original_branch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接