我正在使用git,遵循github流文档here。
该文档说您应该在开发新功能时创建一个新分支。
但是如果我从零开始开发一个项目怎么办?
我的意思是该项目现在只有一个包含README.md
,package.json
和其他基本文件夹和文件的主分支。主分支尚不可部署。
在这个早期阶段开发新功能时,我是否还应该创建一个新的分支?
此时创建新分支的一个缺点是feature1
分支可能与feature2
分支冲突,后来开发了该分支。 feature2
分支变得高度依赖feature1
分支。
我创建了一个不可部署的主分支,因为我在不同的计算机上编写代码。将代码存储在github上可以很容易地在两台计算机之间同步代码。
答案 0 :(得分:0)
如果您是初学者,请了解您的主人是一个非冲突,干净且可部署的代码版本。
为了开发新功能,最好创建一个新分支,让它命名为“dev”分支,然后使用以下命令进行克隆或切换到dev分支:
git checkout -b dev
现在,如果你想开发一个功能,那么在dev上创建一个新的分支并开始工作。
完成工作后,创建一个“拉取请求”,然后在批准后将分支合并到开发分支。
同样,rebase的情况来自dev
的主分支答案 1 :(得分:0)
是否从不可部署的master
分支创建功能分支取决于您如何开发项目。
如果您是项目的唯一开发人员,则无需在此处创建功能分支,因为您是唯一的开发人员。
如果有多个开发人员在项目上工作,则应创建新的功能分支并改为处理功能分支。
不要担心feature2
取决于feature1
,因为功能分支是短生命分支。这意味着当您完成feature1
分支上的工作时,您应该将feature1
中的更改合并到master
分支。
即使有多个功能分支(例如feature2
和feature3
等)未合并到master
分支,而feature1
已合并到master
分支。假设提交历史如下:
C---D feature1
/ \
...---A---B---G master
\
E---F feature 2
因此,当您将feature2
分支合并到master
分支时,master
分支上已部署了新的更改(作为图中的合并提交G
)。您可以首先在feature2
分支的顶部重新定位master
分支(将feature1
分支的更改应用到feature2
分支),然后将feature2
合并到master
。详细步骤如下:
使用命令:
git checkout feature2
git pull origin master
然后提交历史记录将是:
C---D feature1
/ \
...---A---B---G master
\
E'---F' feature 2
git checkout master
git merge feature2
提交历史记录将是:
C---D feature1
/ \
...---A---B---G---E'---F' master, feature2
然后,您可以通过相同的方式将其他现有功能分支(feature3
等)合并到master
分支。