如何从Git / Bitbucket

时间:2016-08-04 10:38:40

标签: git bitbucket atlassian-sourcetree sourcetree

也许我对Git-Flow有错误的方法......

我使用Bitbucket(git)和GitFlow工作流程。

我想知道,即使在合并了其他分支功能之后,即使在合并了其他分支功能后,是否可以在与开发分支合并之后完全删除功能分支的源更改

编辑:我试着更好地解释。我不想删除功能分支,我想删除功能分支带来的所有更改。

我认为如果我的功能分支是最后一次操作,我可以恢复。 但如果: - 我已经完成了我的功能分支在develop-branch上的合并 - 其他功能已在develop-branch上合并

并且只有在此操作之后我才需要删除我的第一个功能而不丢失任何其他功能,这是可能的吗?

谢谢,Ruggero

1 个答案:

答案 0 :(得分:1)

在解释您的问题时,您要撤消将featurebranch合并到develop

这应该可以使用

git checkout develop
git revert mergecommit -m 1

其中mergecommit是实际合并提交的哈希值(如git log所示)。

git help revert中有一个警告:

   -m parent-number, --mainline parent-number
       Usually you cannot revert a merge because you do not know which side of the merge should be considered the
       mainline. This option specifies the parent number (starting from 1) of the mainline and allows revert to reverse
       the change relative to the specified parent.

       Reverting a merge commit declares that you will never want the tree changes brought in by the merge. As a
       result, later merges will only bring in tree changes introduced by commits that are not ancestors of the
       previously reverted merge. This may or may not be what you want.

所以:

  • 您需要找出要选择合并的哪一方。 git log,找到Merge: aaaaa bbbbb行,然后相应地选择-m 1-m 2
  • 您可能希望提供-n选项以避免自动提交,以避免在出现问题时出现一些麻烦。