我在heroku上部署了一个应用程序。我已将我的GitHub帐户连接到heroku,因此如果我将任何内容推送到master
分支,则会自动进行
部署在heroku上并提供给客户。
为了改进这个过程,我创建了一个development
分支,在我开发和测试代码时,我推送了所有代码。一旦该代码准备就绪,我想将其推送到master
分支以部署在heroku上。
我做了什么:
创建分支
git branch development
访问开发分支
git checkout development
推动对发展部门的更改
git add .
git commit -am "did something"
git push -u origin development
所有这些都奏效了。
我的问题:
我无法从控制台中找出正确的过程以及如何执行以下操作:
development
推送到master
分支,表示它们相同development
分支?答案 0 :(得分:1)
您有两个问题:
master
分支和development
分支
master
分支让主服务器与开发分支保持同步的最简单方法是在开发分支中本地合并,然后将更新的主服务器推送到GitHub存储库:
git checkout master
git merge development
git push origin master
如果直接在主分支上没有完成任务(正如您在问题中提到的那样),则合并应为fast-forward。
然后,您可以再次查看开发分支并继续工作:
git checkout development
总而言之,此程序的图表将遵循以下内容:
-- A -- B -- C merge -- A -- B -- C
| | -------> |
master development master, development
现在,进入更棘手的部分:
管理您的分支机构有无数种方法,并且没有规范的一对一解决方案适用于所有规模和复杂程度的项目。这就是git等灵活系统的强大功能,但同时也是一个小缺点,因为你应该选择哪个系统?
我建议您查看git workflows上的一些文章和博客文章,然后选择一个适合您的文章和博客文章。如果项目的边界条件发生变化,您可以随时重新评估和更改该项目的git工作流程。
每次开发时是否需要创建新分支,还是可以继续重用开发分支?
通过上述步骤,您可以继续使用开发分支,而无需任何额外步骤。
答案 1 :(得分:0)
我建议你花点时间观看一些git工作流视频,你应该为每个新功能创建一个分支,在一个真实的项目中,一个分支不应该保持开放超过2天以避免合并问题。
使用git merge
将更改从分支导入到主https://git-scm.com/docs/git-merge
答案 2 :(得分:0)
您可以将开发分支合并到开发分支上的master或rebase master。有些人认为一种解决方案比另一种更好,但这取决于你。 Here对差异有很好的解释。
这个问题与工作流程有关。唯一的规则是所有正在制作git repo的人都同意他们将要做的事情。所以,如果你一个人,你可以按你的意愿去做。但是有些人会再次告诉你必须为每个功能创建新的分支,然后再次发现这取决于你。
我建议你为Git使用一些GUI客户端。其中包括SourceTree,GitKraken或GitHub Desktop。我目前正在使用GitKraken,它很容易允许handle a git flow。