2

在我们的团队中,我们正在使用开发、登台和主分支以及分支来解决问题。通过这个工作流程,我发现自己做了很多以下事情:

例如在开发分支中:

git checkout staging; git merge development

有没有人有一个简单的别名?

它应该是这样的:

merge_with master

会做:

git checkout master; git merge previous_branch
4

6 回答 6

2
git checkout master; git merge HEAD@{1}

您可以使用以下方法为其分配别名:

git config alias.mm '!git checkout master; git merge HEAD@{1}'

所以这git mm会将你当前的分支合并到master中。

于 2009-12-31T09:09:46.263 回答
1

git merge如果发生冲突,总是在当前分支上执行,因此您必须先签出暂存分支。

但是,如果允许线性历史,您可以使用git rebase development staging.

正如迈克尔所说,您始终可以使用别名。

编辑:将此添加到 .git/config 即可

[alias]
    merge_to = !sh -c 'CURRENT=$(git symbolic-ref HEAD) && git checkout $1 && git merge $CURRENT' -
于 2009-12-31T08:45:19.990 回答
0
git config alias.thething '!git checkout staging ; git merge $1'

应该给你一个

git thething development
于 2009-12-31T08:36:04.117 回答
0

这就是我的意思,但它还不起作用。

branch="$(git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')"; echo "git checkout master; git merge $branch"

首先它找出当前分支是什么。然后它使用它来确定要合并的分支。

所以接下来的事情是找出如何附加别名参数......

于 2009-12-31T08:56:22.680 回答
0

感谢你的帮助。没有人完全按照我的意愿去做,但确实让我朝着正确的方向前进。

我已将以下内容添加到 ~/.bash_login。对于每个 git 存储库“merge_to somebranch”都会执行 git checkout somebranch;git 合并上一个分支。

# Git functions to quickly merge branches
# e.g. merge_to staging
function current_branch { ref=$(git symbolic-ref HEAD 2> /dev/null); echo ${ref#refs/heads/} }
function merge_to       { branch=`eval current_branch`; git checkout "$@" && git merge $branch }
于 2009-12-31T10:33:28.337 回答
0

我一直在这样做,特别是因为在我们的一个项目中,我们有几个微妙不同的生产分支。部署修复/更新会使您的手指感到疲倦。

对于所有 Windows 主机:我刚刚在我的 %path% 某处创建了一个merge.bat文件,它包含:

git checkout %1 && git merge %2 --verbose

那么我所做的就是

merge foo bar

它运行:

git checkout foo 
git merge bar --verbose
于 2012-05-16T10:49:51.783 回答