新建了一个分支uop-151,是基于uop-387的,但是我想基于主分支建的,但是现在已经开发并提交了,但是我只想提交uop-151的东西,不想提交uop-387的,如何处理?
我只想提交最上面那个commit,下面的都不想提交。主要的是我已经推送到远程分支。
跟是否推送到远程无关的。就算 push 了你也可以 push -f 修改啊。。
push
push -f
这种情况直接用 git rebase --onto 就可以了。文档:https://git-scm.com/docs/git-...
git rebase --onto
你的情况可以抽象成:A - B - C - D - E - F - G。其中 A 是最初的起始点(master),B C D E F 是来自 uop-387 的,而且你不打算要。G 是你自己的 commit,要保留。
A - B - C - D - E - F - G
A
B C D E F
uop-387
G
先执行 git checkout uop-151,确保你在要操作的分支上。
git checkout uop-151
然后 git rebase --onto uop-151~6 uop-151~1 uop-151
git rebase --onto uop-151~6 uop-151~1 uop-151
结果: A - G'
A - G'
雷雷
git有个cherry-pick的命令,不知道是不是满足你的需求。用法自行百度下吧
如果你只是在本地做了操作,还没推送到服务器上游,可以使用git rebase将uop-151 rebase到master上。
git rebase
uop-151
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。
git reset xxxx
然后切换点 master 分支,重新基于 master 建分支。别忘了使用 --merge 参数。
--merge
如果你对 git 比较熟悉,可以使用 cherry-pic 命令。
checkout回主分支后,再建立一个新分支就行了。
跟是否推送到远程无关的。就算
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有个cherry-pick的命令,不知道是不是满足你的需求。用法自行百度下吧
如果你只是在本地做了操作,还没推送到服务器上游,可以使用
git rebase
将uop-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 命令。
checkout回主分支后,再建立一个新分支就行了。