当我从头开始开发项目时,我应该创建一个新的git功能分支吗?

时间:2018-03-26 07:45:35

标签: git version-control branch git-branch

我正在使用git,遵循github流文档here

该文档说您应该在开发新功能时创建一个新分支。

但是如果我从零开始开发一个项目怎么办?

我的意思是该项目现在只有一个包含README.mdpackage.json和其他基本文件夹和文件的主分支。主分支尚不可部署。

在这个早期阶段开发新功能时,我是否还应该创建一个新的分支?

此时创建新分支的一个缺点是feature1分支可能与feature2分支冲突,后来开发了该分支。 feature2分支变得高度依赖feature1分支。

我创建了一个不可部署的主分支,因为我在不同的计算机上编写代码。将代码存储在github上可以很容易地在两台计算机之间同步代码。

2 个答案:

答案 0 :(得分:0)

如果您是初学者,请了解您的主人是一个非冲突,干净且可部署的代码版本。

为了开发新功能,最好创建一个新分支,让它命名为“dev”分支,然后使用以下命令进行克隆或切换到dev分支:

 git checkout -b dev

现在,如果你想开发一个功能,那么在dev上创建一个新的分支并开始工作。

完成工作后,创建一个“拉取请求”,然后在批准后将分支合并到开发分支。

同样,rebase的情况来自dev

的主分支

答案 1 :(得分:0)

是否从不可部署的master分支创建功能分支取决于您如何开发项目。

  • 如果您是项目的唯一开发人员,则无需在此处创建功能分支,因为您是唯一的开发人员。

  • 如果有多个开发人员在项目上工作,则应创建新的功能分支并改为处理功能分支。

    不要担心feature2取决于feature1,因为功能分支是短生命分支。这意味着当您完成feature1分支上的工作时,您应该将feature1中的更改合并到master分支。

    即使有多个功能分支(例如feature2feature3等)未合并到master分支,而feature1已合并到master分支。假设提交历史如下:

            C---D    feature1
           /     \
    ...---A---B---G   master
               \
                E---F  feature 2
    

    因此,当您将feature2分支合并到master分支时,master分支上已部署了新的更改(作为图中的合并提交G)。您可以首先在feature2分支的顶部重新定位master分支(将feature1分支的更改应用到feature2分支),然后将feature2合并到master。详细步骤如下:

    一个。主分支顶部的rebase feature2

    使用命令:

    git checkout feature2
    git pull origin master
    

    然后提交历史记录将是:

            C---D    feature1
           /     \
    ...---A---B---G   master
                   \
                    E'---F'  feature 2
    

    湾将feature2合并到master分支中:

    git checkout master
    git merge feature2
    

    提交历史记录将是:

            C---D    feature1
           /     \
    ...---A---B---G---E'---F'   master, feature2
    

    然后,您可以通过相同的方式将其他现有功能分支(feature3等)合并到master分支。