好的,我只想检查我的 GIT 设置的工作流程是否正确,并且在我开始正确使用它之前我完全理解它。我正在遵循这个工作流程,这个主题只是从初始化和创建功能分支开始,然后当我确信我将为发布和修补程序创建一个新主题时。希望这将有助于其他希望在类似工作流程中使用 GIT 的人。
有 3 个开发人员,我们称他们为 A、B 和 C,他们都将在他们的本地计算机上工作,我们有 4 个远程服务器 - 'Development'、'Staging'、'Production' 和 Unfuddle(作为集中式服务器)。开发人员 A 在其本地计算机上拥有文件目录。
所以,我认为工作流程如下。
首先,我需要在 Unfuddle 上创建存储库,然后在本地将我的文件推送到 Unfuddle 服务器。
在 Unfuddle 中创建一个名为“website”的存储库,并将其缩写为“web”
在“开发”、“暂存”和“生产”服务器上创建一个 SSH 密钥对,并将它们添加到 Unfuddle 帐户。
开发人员 A 在其文档根目录中初始化一个 Git 存储库:
git init
将 Unfuddle 存储库与开发人员 A 的本地存储库相关联,并将其指定为上游服务器:
git remote add unfuddle git@subdomain.unfuddle.com:username/web.git
git config remote.unfuddle.push refs/heads/master:refs/heads/master
开发人员 A 将所有文件添加到索引
git add *
开发者 A 提交所有文件
git commit -am 'initial commit'
开发人员 A 将本地提交的内容推送到 Unfuddle Git 存储库。
git push unfuddle master
我现在应该在我的 Unfuddle 存储库中看到我的所有文件。开发人员 B 和 C 现在可以克隆存储库以获取网站文件的副本。
`git clone git@subdomain.unfuddle.com:username/web.git`
功能分支:
每个开发人员现在都可以使用以下工作流程开始创建功能分支:
git checkout -b develop
git checkout -b feature\test develop
- 进行任何代码更改
git commit -a -m "Make test code changes"
git checkout develop
git merge --no-ff feature\test
git branch -d feature\test
git push unfuddle develop
好的,所以下一部分我不确定。我们已将功能更改推送到集中式 Unfuddle 服务器,但是其他开发人员需要获取更改,因此他们是否需要创建一个“开发”分支然后执行git pull unfuddle develop
?我读过 fetch and merge 比 pull 好,是这样吗?如果是的话,会是git fetch unfuddle develop
那时git merge develop
吗?