2016-12-15 29 views
0

我目前的基于主机的工作流程是在masterdevelop分支中开发修补程序和新功能。当需要发布时,我执行以下操作:更简单的基于主的工作流程

git checkout master && git pull 
git checkout develop && git rebase master 
git checkout master && git merge develop 
git push 

我可以使用较少的命令执行相同操作吗?如果可能,我想省略多个checkout

回答

1

让我们来看看。 (这里假设你的遥控器被命名为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不能有两个同名的分支。

相关问题