Git - 管理多个分支



我在heroku上部署了一个应用程序。我已经将我的 GitHub 帐户连接到 heroku,所以如果我将任何东西推送到master分支,它会自动 部署在 Heroku 上并提供给客户。

为了改进此过程,我创建了一个development分支,在开发和测试代码时推送所有代码。一旦代码准备就绪,我想将其推送到要部署在 heroku 上的master分支。

我做了什么:

创建分支

git branch development

交通发展处

git checkout development

将更改推送到开发分支

git add .
git commit -am "did something"
git push -u origin development

所有这些都奏效了。

我的问题:

我无法从控制台找出正确的过程以及如何执行以下操作:

  1. 将更改从development推送到master分支,因此表示它们是相等
  2. 我是否需要在每次开发时创建一个新分支,或者我可以继续重用development分支?

您有两个问题:

  1. development分支更新master分支,以及
  2. 确定常规工作流程。

更新master分支

使主节点与开发分支保持同步的最简单方法是在本地合并开发分支,然后将更新的主节点推送到 GitHub 存储库:

git checkout master
git merge development
git push origin master

如果没有直接在主分支上完成任何工作(正如您在问题中提到的(,合并应该是快进的。

然后,您可以再次签出开发分支并继续工作:

git checkout development

总而言之,此过程的图形将遵循如下内容:

-- A -- B -- C          merge       -- A -- B -- C
|         |         ------->                  |
master   development                         master, development

现在,进入更棘手的部分:

选择您的工作流程

管理分支的方法有无数种,并且没有适用于各种规模和复杂性项目的规范的通用解决方案。这就是像 git 这样灵活的系统的强大之处,但同时也有一个小缺点,因为你应该选择哪个系统

我建议查看一些关于 git 工作流程的文章和博客文章,然后选择适合您的文章和博客文章。如果项目的边界条件发生更改,您始终可以根据需要重新评估和更改该项目的 git 工作流。

我是否需要在每次开发时创建一个新分支,或者我可以继续重用开发分支吗?

通过上述过程,您可以继续处理开发分支,而无需任何额外步骤。

我建议您花点时间观看一些 git 工作流视频,您应该为每个新功能创建一个分支,在实际项目中,分支不应保持打开状态超过 2 天以避免合并问题。

使用git merge将更改从分支导入到主 https://git-scm.com/docs/git-merge

  1. 您可以将开发分支合并到 master 中,也可以在开发分支上重新设置主节点的基址。有些人认为一个解决方案比另一个更好,但这取决于你。以下是关于差异的良好解释。

  2. 这个问题实际上是关于工作流程的。唯一的规则是,所有正在处理该 git 存储库的人都同意他们将做什么。所以如果你一个人,你可以随心所欲。但是再一次,有些人会说你必须为每个功能创建新的分支,而这又取决于你。

  3. 我建议您为 Git 使用一些 GUI 客户端。其中包括SourceTree,GitKraken或GitHub Desktop。我目前正在使用 GitKraken,它允许非常轻松地处理 git 流。

最新更新