我检查了几个提交到master
,应该已经检查到develop
。我用什么git命令从主分支中删除这些提交并将其包含在开发分支中?如何将git从主服务器提交到不同的现有分支
16
A
回答
5
您可以cherry-pick
您提交到了develop
事后交互rebase
您master
分支:
git checkout develop
git cherry-pick aabbcc
git cherry-pick ddeeff
- ....
git checkout master
git rebase 123456 -i
其中123456
是一个承诺,你犯了一个错误之前。这将打开一个编辑器,显示每个将受到rebase影响的提交。删除与要放弃的提交相对应的行并退出编辑器。
6
对于应对到另一个分支则可以使用采摘樱桃:
git cherry-pick <commit>
删除并不那么容易。您可以使用底垫和壁球或编辑承诺:
git rebase -i <commit>~1
但重订时艇员选拔编辑的时候,我不知道你是否还可以编辑这些文件,而不是只提交信息。
+1
在交互式rebase期间'edit'可以让你编辑提交信息和文件,'reword'只允许你修改提交信息。 – 2013-03-05 22:32:12
0
通常有几种方法可以做到同样的事情在git的一种可能的方式:
git checkout develop
git cherry-pick XXX // XXX being the sha1 of the commit you want to grab
git checkout master
git rebase --interactive HEAD~IDX // IDX being the position of the last "good" commit compared to HEAD
最后的命令将显示从头部所有审核到最后好提交,所有你需要做的就是删除提交到移动分支发展
25
如果我没有记错的线,你有两个同步分支, master
和dev
,根本忘记您提交之前切换分支, 。
如果是这样的话,我们有:
----------------
git log in dev
xxx
yyy
...
----------------
和:
----------------
git log in master
ccc
bbb
aaa
<---- here you forgot to switch branch
xxx
yyy
...
----------------
解决的办法是:
首先,确保,即:
git status -s
返回空结果。
接下来,得到master
所有新提交到dev
有:
git checkout dev
git merge master
现在回到你master
:
git checkout master
删除不必要的提交:
git reset --hard HEAD~3
数~3
是您提交的数量想要删除。
记住:git status -s
必须返回空的结果。 否则,git reset --hard
可能会导致数据丢失。
相关问题
- 1. 如何将提交从主服务器排除到另一个分支
- 2. 壁球git从主题分支提交
- 3. Git在提交/推送部署分支到服务器
- 4. Git:提交“主”分支出现在其他分支
- 5. git - 从一个本地分支如何拉下提交从主
- 6. 如何将自动分割提交到不同的分支?
- 7. git将最新的提交合并到主分支
- 8. 如何将未创建主分支到GIT中的主分支
- 9. 的Git分支没有表现出如提前起源提交
- 10. git-p4在主分支之外提交?
- 11. 合并大的git提交,将它分成主分支上的小提交
- 12. (git):如何从上游分支提交特定提交?
- 13. 使用git,我如何将主分支移回到提交之前的状态?
- 14. Git服务器端分支
- 15. 如何从服务器重新同步到主git仓库?
- 16. 如何撤消提交并将更改提交到Git中的其他分支?
- 17. Git:同时提交多个分支
- 18. 从提交ID找到git分支或分支
- 19. Git - 从以前的提交和拆分提交历史分支
- 20. 服务器端现有提交的Git Submodule URL更改
- 21. 没有提交的Git结帐分支
- 22. Git如何结帐分支提交
- 23. 从主分支中提取其他提交后,Git压缩提交
- 24. 如何从提交ID找到分支
- 25. 如何将所有提交从特定提交移动到新分支
- 26. Git使主分支具有以前提交的内容
- 27. 如何将所有提交从一个分支移动到另一个分支?
- 28. 如何合并git分支以使主题提交为孤立?
- 29. Git + Gerrit跨分支提交?
- 30. Git远程分支提交
你看过这个答案吗? - http://stackoverflow.com/questions/1773731/in-git-how-do-i-remove-a-commit-from-one-branch-and-apply-it-to-a-different-bra?rq = 1个 – 2013-03-05 22:26:13
看看这个:[布展最近提交到一个新分支] [1] [1]:http://stackoverflow.com/questions/1628563/move-recent -commit到一个全新的分支 – 2013-03-05 22:27:23
因为有一个“这个问题可能已经有一个答案在这里”块顶部,只是想指出我的问题是不是移动到_new_分支,它是关于移动到不同_existing_分支 – gitq 2013-03-05 23:31:27