在我们的团队中,我们使用开发,登台和主分支以及问题分支。通过这个工作流程,我发现自己做了很多以下事情:
例如在开发分支中:
git checkout staging; git merge development
有没有人有这个简单的别名?
应该是这样的:
merge_with master
会做:
git checkout master; git merge previous_branch
答案 0 :(得分:2)
git checkout master; git merge HEAD@{1}
您可以使用以下命令为其指定别名:
git config alias.mm '!git checkout master; git merge HEAD@{1}'
这样git mm
会将您当前的分支合并为主分支。
答案 1 :(得分: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' -
答案 2 :(得分:0)
git config alias.thething '!git checkout staging ; git merge $1'
应该给你一个
git thething development
答案 3 :(得分:0)
这是我的意思,除了它还没有用。
branch="$(git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')"; echo "git checkout master; git merge $branch"
首先,它找出当前分支是什么。然后它使用它来确定要合并的分支。
接下来就是找出如何附加别名参数......
答案 4 :(得分:0)
感谢您的帮助。所有这些都没有完全符合我的要求,但确实让我朝着正确的方向前进。
我在〜/ .bash_login中添加了以下内容。对于每个git存储库“merge_to somebranch”都会执行git checkout somebranch; git merge previousbranch。
# 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 }
答案 5 :(得分:0)
我永远这样做,特别是因为在我们的一个项目中,我们有几个微妙不同的生产分支。部署修复/更新可能会让您的手指感到疲惫。
对于你所有的Windows:我刚刚在我的%path%中创建了一个 merge.bat 文件,它包含:
git checkout %1 && git merge %2 --verbose
然后我所做的就是
merge foo bar
并运行:
git checkout foo
git merge bar --verbose