suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Git hat versehentlich einen neuen Zweig basierend auf anderen Zweigen erstellt, aber ich möchte einen neuen Zweig basierend auf dem Hauptzweig erstellen.

Ein neuer Zweig uop-151 wird erstellt, der auf uop-387 basiert, aber ich möchte ihn basierend auf dem Hauptzweig erstellen, aber jetzt wurde er entwickelt und eingereicht, aber ich möchte nur uop-151-Sachen einreichen, nicht uop-387 , wie geht man damit um?

Ich möchte nur den obersten Commit einreichen und die folgenden Commits möchte ich nicht einreichen. Die Hauptsache ist, dass ich in den Remote-Zweig gepusht habe.

曾经蜡笔没有小新曾经蜡笔没有小新2709 Tage vor1034

Antworte allen(7)Ich werde antworten

  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-23 09:14:17

    跟是否推送到远程无关的。就算 push 了你也可以 push -f 修改啊。。

    这种情况直接用 git rebase --onto 就可以了。文档:https://git-scm.com/docs/git-...

    你的情况可以抽象成:A - B - C - D - E - F - G。其中 A 是最初的起始点(master),B C D E F 是来自 uop-387 的,而且你不打算要。G 是你自己的 commit,要保留。

    先执行 git checkout uop-151,确保你在要操作的分支上。

    然后 git rebase --onto uop-151~6 uop-151~1 uop-151

    结果: A - G'

    Antwort
    0
  • 阿神

    阿神2017-06-23 09:14:17

    git branch -D uop-151
    git checkout master
    git checkout -b uop-151

    Antwort
    0
  • 欧阳克

    欧阳克2017-06-23 09:14:17

    git有个cherry-pick的命令,不知道是不是满足你的需求。用法自行百度下吧

    Antwort
    0
  • 阿神

    阿神2017-06-23 09:14:17

    如果你只是在本地做了操作,还没推送到服务器上游,可以使用git rebaseuop-151 rebase到master上。

    官方Git Rebase文档(需要翻墙)
    https://git-scm.com/docs/git-...

    其他参考文档
    http://blog.csdn.net/hudashi/...

    Antwort
    0
  • 習慣沉默

    習慣沉默2017-06-23 09:14:17

    将你开发提交的commit id, cherry-pic到master即可。

    Antwort
    0
  • 代言

    代言2017-06-23 09:14:17

    如果还没有 push,可以在 uop-387 分支进行 git reset xxxx 操作。其中 xxxx 是 uop-151 分支最新的 hash。

    然后切换点 master 分支,重新基于 master 建分支。别忘了使用 --merge 参数。


    如果你对 git 比较熟悉,可以使用 cherry-pic 命令。

    Antwort
    0
  • 学习ing

    学习ing2017-06-23 09:14:17

    checkout回主分支后,再建立一个新分支就行了。

    Antwort
    0
  • StornierenAntwort