Git hat versehentlich einen neuen Zweig basierend auf anderen Zweigen erstellt, aber ich möchte einen neuen Zweig basierend auf dem Hauptzweig erstellen.
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-23 09:12:17
0
7
1041

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.

曾经蜡笔没有小新
曾经蜡笔没有小新

Antworte allen(7)
过去多啦不再A梦

跟是否推送到远程无关的。就算 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'

阿神
git branch -D uop-151
git checkout master
git checkout -b uop-151
学霸

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

阿神

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

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

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

習慣沉默

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

代言

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

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


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

学习ing

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage