2013-01-05 189 views
0

我有两个brances,即master和development。 所有的开发工作都将在开发分支内部完成,并将与主开发部门合并。Git:我如何从分支中删除特定的提交

我检出了主分支,樱桃挑选了属于开发分支的5个提交并将其推送到主远程存储库。

所有这些事情都很好。

git checkout master 
git status 
git cherry-pick a7644fc2bc7b09fe88cb1cbb75e0547dd1d7321d 
git cherry-pick 335bf121a6aa7bc1e334b94d1a742b0f9ecfb9b6 
git cherry-pick 5dee244a47d0346d5080ecd34984683c8f442c93 
git cherry-pick 9f8fe22b346ba80089126afbf29ac063ea7b9b32 
git cherry-pick 5dee244a47d0346d5080ecd34984683c8f442c9h 
git push 

现在我的要求是,我需要删除一个樱桃选择从主要做构建。

我不知道,但是当我用Google搜索,我发现这两个命令

git revert --strategy resolve 

git rebase 

请让我知道,从主分支

更新部分

当我做混帐how can i remove a particular commit恢复564d01c3870ca5a55b171fc6f061e0cc2a8f4879这个屏幕出现了,我可以避免这种??

enter image description here

回答

2

使用git revert <commit>。如果您不希望编辑器弹出使用--no-edit选项。如果您不想实际上提交回复,只需将其应用于您的工作目录,请使用--no-commit选项。

如果您只推送到受控存储库,并且您肯定知道没有人从中取出它,那么您可以执行一些操作,然后重新挑选您实际需要的提交。但推荐使用而不是

+0

非常感谢,但是当我做git恢复comitid时,纳米屏幕出现了,我可以避开那个屏幕? – Pawan

+1

纳米屏幕与提交时获得的屏幕相同,即它会提示您提交提交消息,因为您基本上正在创建一个提交以恢复先前的提交。你可以使用'git revert --no-edit '来阻止屏幕,但是它只会使用你之前看到的信息而不给你编辑它的机会。 – poke

+0

@PreethiJain编辑为不启动编辑器。 – kmkaplan