故事是这样的
- 我从远程存储库
origin/fts
获得了名为fts
的分支 - 我已经对本地存储库
fts
进行了一些提交(没有推送) - 我发现我犯了一些无法公开的事情
- 我 checkout 上次安全提交并收到You are in 'detached HEAD' state.消息
- 我已经完成了新的提交。
日志看起来像这样(没有一些提交)
$ 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
我应该做什么
- 不会将提交从当前本地 fts (f38e892) 推送到远程。
- 用不同的名称保存这个不幸的分支,例如
private-fts
- 将分支名称
fts
移动到当前分离的 HEAD (3e39eeb),不进行任何会 merge 当前fts
提交的 rebase 或 merge 。< - 将当前分离的 HEAD 推送为
fts
(成为origin/fts
)。 - 当我确定不需要
private-fts
时,也可以从本地存储库中删除它。
最佳答案
首先,您需要使用以下命令将 fts
分支重命名为 private-fts
:
git branch fts -m private-fts
现在,在 3e39eeb
重新创建 fts
分支
git checkout 3e39eeb -b fts
将新的 fts
分支推送并关联到源:
git push --set-upstream origin fts
准备好完全删除 private-fts
后,请执行以下操作:
git branch -D private-fts
关于Git - 将分支名称移动到另一个分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34272174/