在一个步骤/命令中合并和删除分支

时间:2016-02-19 14:06:40

标签: git merge git-branch branching-and-merging

是否可以merge分支并使用单个命令自动delete?只有在合并成功时才应执行删除步骤。

3 个答案:

答案 0 :(得分:34)

不,git不会同时支持此功能。

但是,您可以有条件地在shell中运行命令:

git merge source-branch && git branch -d source-branch

修改

-d只会删除合并的分支,而-D也会删除未合并的分支,因此-d将确保合并分支,并且不会意外删除分支。< / p>

答案 1 :(得分:4)

这是一个古老的问题,但是对于那些偶然发现该功能的人,可以添加一个Git别名来完成此操作。例如,在.gitconfig中:

# ...

[alias]
  mgd = "!git mg $1 && git br -d $1; #"

然后,您可以运行git mgd branch-name来合并和删除分支。请注意,小写的-d标志可确保仅在分支已经完全合并的情况下才删除该分支;因此,您不必担心第一个命令无法正常工作然后丢失分支。

别名开头的感叹号表示这是bash命令,$1存储用户传入的参数(即要合并/删除的分支的名称)。

注意:请不要忘记别名末尾的注释字符(#)!没有它将无法工作。

答案 2 :(得分:1)

我会写一个剧本。

git branch | grep -v master | xargs git merge
git branch | grep -v master | xargs git branch -d

此处,分支名称master可以替换为您当前的分支名称。