Git - 将分支名称移动到另一个分支

时间:2015-12-14 16:39:07

标签: git

这是故事

  1. 我从远程仓库fts
  2. 获得了名为origin/fts的分支
  3. 我已经对本地回购fts做了一些提交(没有推送)
  4. 我发现我提交了一些我无法公开的内容
  5. 我结帐以持续安全提交并获取您处于'分离的HEAD'状态。消息
  6. 我做了新的提交。
  7. 日志看起来像那样(没有一些提交)

    $ git log --pretty=oneline --abbrev-commit --decorate --all --graph -10
    * 3e39eeb (HEAD) That should be pushed as origin/fts
    | * f38e892 (fts) That cannot be pushed
    |/
    * 84fa79a (origin/fts) Commit i got from remote
    

    我该怎么办

    1. 不将当前本地fts(f38e892)的提交推送到远程。
    2. 使用private-fts
    3. 等不同名称保存此不幸分支
    4. 将branchname fts移至当前已分离的HEAD(3e39eeb),无任何包含来自当前fts的提交的重新定位或合并。
    5. 将当前分离的HEAD推送为fts(成为origin/fts)。
    6. 当我确定不需要private-fts时,也可以从本地回购中删除它。

3 个答案:

答案 0 :(得分:1)

我会做以下事情:

  1. 从当前private-fts分行结帐至ftsgit checkout -b private-fts,因此您当前的所有代码都将保存在private-fts分支。
  2. 删除fts分支。 git branch -D fts
  3. 切换回private-fts分支。
  4. 结帐到您的提交,您希望转到origin/fts
  5. 当你处于分离的HEAD时,切换到fts分支。 git checkout -b fts
  6. 现在,您所需的所有代码都位于fts分支中,而private-fts中的不幸代码

答案 1 :(得分:1)

首先,您要使用以下命令将fts分支重命名为private-fts

git branch fts -m private-fts

现在,在fts

重新创建3e39eeb分支
git checkout 3e39eeb -b fts

Push&将新的fts分支与原始关联:

git push --set-upstream origin fts

一旦您准备完全删除private-fts,请执行以下操作:

git branch -D private-fts

答案 2 :(得分:0)

如果您想将本地fts重置回origin/fts中的内容,则可以对原始提交进行硬重置。

git reset --hard origin/fts