我目前的基于主机的工作流程是在master
和develop
分支中开发修补程序和新功能。当需要发布时,我执行以下操作:更简单的基于主的工作流程
git checkout master && git pull
git checkout develop && git rebase master
git checkout master && git merge develop
git push
我可以使用较少的命令执行相同操作吗?如果可能,我想省略多个checkout
。
我目前的基于主机的工作流程是在master
和develop
分支中开发修补程序和新功能。当需要发布时,我执行以下操作:更简单的基于主的工作流程
git checkout master && git pull
git checkout develop && git rebase master
git checkout master && git merge develop
git push
我可以使用较少的命令执行相同操作吗?如果可能,我想省略多个checkout
。
让我们来看看。 (这里假设你的遥控器被命名为origin
)
git fetch origin master
git rebase origin/master develop
git checkout master && git merge --ff-only develop
git push
笔记:
git rebase origin/master develop
是完全一样的git checkout develop && git rebase master
合并时的清晰度,因为这个合并不会造成我用--ff-only
任何新的提交,只需移动分支指针。
好吧,所以最初的新代码仍然是4行,但结帐只出现一次。 您或许可以通过使用this question中的想法稍微减少结帐,但我会忽略这一点。
您可以进一步降低typeing(但不git的执行时间),通过与多个命令(as seen here)用感叹号(!
)起别名创建git的别名。
您可以创建一个别名,像这样:
git config --global alias.pushDevelop '!git fetch origin/master; git rebase origin/master develop; git checkout master; git merge --ff-only develop; git push'
你会然后使用命令像这样:git pushDevelop
。
你也可以用git branch -f master
取代第三行,并重新创建develop
分支master
分支,但可能会导致跟踪信息的丢失。 (这个命令强制创建分支master
,需要-f
,因为git不能有两个同名的分支。