带有rebase的SourceTree完成功能-CLI等效

时间:2018-12-23 11:34:55

标签: git command-line-interface atlassian-sourcetree rebase git-flow

我已经使用SourceTree一段时间来执行所有GitFlow操作,包括关闭feature分支。

现在,我想更好地了解如何通过git CLI执行某些操作。

尤其是,我还不了解通过选择rebase选项来关闭功能的CLI等效功能,如下图所示。

enter image description here

我尝试合并,但是并不能重现整个过程,什么是CLI命令才能执行与SourceTree执行的操作相同的操作?

1 个答案:

答案 0 :(得分:1)

大多数GitFlow工具所源自的原始命令行建议可以在以下原始博客文章中找到:

https://nvie.com/posts/a-successful-git-branching-model/#incorporating-a-finished-feature-on-develop

关闭功能分支包括以下步骤:

$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff myfeature
Updating ea1b82a..05e9557
(Summary of changes)
$ git branch -d myfeature
Deleted branch myfeature (was 05e9557).
$ git push origin develop

SourceTree中的复选框选项可能还会执行一个附加步骤,该步骤是在合并之前将当前要素分支重新定位到development分支的头部。如果您不熟悉git rebase操作,建议您首先在这里阅读以下内容:

https://git-scm.com/docs/git-rebase

注意:尽管变基操作是遵循的完全正常的工作流程,但我几乎每天都使用它,如果您是第一次使用它,可能会引起问题,尤其是在存在冲突的情况下在您正在使用的功能分支与开发分支之间的内容之间。我鼓励您单独尝试以下方法,以适应正在发生的事情。

因此,从上方查看功能工作流程的“正常”完成情况,您将执行以下操作:

$ git checkout myfeature
Switched to branch 'myfeature'
$ git rebase develop
Replay commits from myfeature branch onto the head of the current develop branch
$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff myfeature
Updating ea1b82a..05e9557
(Summary of changes)
$ git branch -d myfeature
Deleted branch myfeature (was 05e9557).
$ git push origin develop

如果您查看rebase操作之前和之后git存储库的历史记录,则希望可以对正在发生的事情有所了解。如果仍然不确定,则可能需要使用类似以下的内容:

http://git-school.github.io/visualizing-git

这将帮助您可视化正在发生的git操作。