首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git工作流(Dev>Staging>Live)的基本技术问题

Git工作流(Dev>Staging>Live)的基本技术问题
EN

Stack Overflow用户
提问于 2012-07-12 22:30:03
回答 2查看 6.8K关注 0票数 11

我对Git (以及VC )非常陌生,我正在努力理解使用分支的Dev>Staging>Live工作流背后的概念。

我正在尝试应用工作流的一部分,它使用开发工具分支和发布分支,而不是固定的阶段。

在尝试使用Git之前,我有一个使用SVN的“相同”工作流。但是,我们没有为每个阶段创建分支,而是使用了分离的存储库。既然我想申请分支机构,事情就变得有点模糊了。

我可以理解工作流背后的想法,但不能从技术角度理解它。

创建它所遵循的步骤:

创建文件夹

代码语言:javascript
复制
user:/var/www/$ mkdir dev.example.local
user:/var/www/$ mkdir staging.example.local
user:/var/www/$ mkdir example.local

Init存储库

代码语言:javascript
复制
user:/var/www/example.local$ git init
user:/var/www/example.local$ git remote add origin git@bitbucket.org:user/example.com.git
user:/var/www/example.local$ echo "README" > README
user:/var/www/example.local$ git commit -am "First"
user:/var/www/example.local$ git push origin master

user:/var/www/example.local$ cd ../dev.example.com
user:/var/www/dev.example.local$ git clone git@bitbucket.org:user/example.com.git .
user:/var/www/dev.example.local$ git checkout -b dev
user:/var/www/dev.example.local$ git push origin dev

user:/var/www/dev.example.local$ cd staging.example.com
user:/var/www/staging.example.local$ git clone git@bitbucket.org:user/example.com.git .

关于开发分支的一些工作

代码语言:javascript
复制
user:/var/www/dev.example.local$ echo "New" > newfile
user:/var/www/dev.example.local$ git add .
user:/var/www/dev.example.local$ git commit -am "Some new file"
user:/var/www/dev.example.local$ git push origin dev

当新版本准备就绪时,

代码语言:javascript
复制
user:/var/www/staging.example.local$ git fetch
user:/var/www/staging.example.local$ git checkout -b release-0.1 dev
user:/var/www/staging.example.local$ git push origin release-0.1

user:/var/www/staging.example.local$ cd ../example.com
user:/var/www/example.local$ git fetch
user:/var/www/example.local$ git merge --no-ff origin/release-0.1
user:/var/www/example.local$ git tag -a "0.1"
user:/var/www/example.local$ git push origin master

user:/var/www/example.local$ cd ../dev.example.com
user:/var/www/example.local$ git merge --no-ff master
user:/var/www/example.local$ git push origin dev

我很确定我没有遵循正确的步骤。那么,有什么“正确的方法”来:

  • dev,创建 live 文件夹,并在每个文件夹中插入git?
  • 结帐/合并新版本?
  • live release 到的合并
  • 创建了整个环境?

和:

  • 我应该在哪里运行这些git命令?在我当地的回购上?每个阶段?

相关信息:

  • 我用的是BitBucket
  • 这是为了网站(Drupal)的开发
  • 我的支部是现场直播
  • 大约有3个开发人员同时工作,每个开发人员都在不同的国家工作。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 22:45:20

不需要创建不同的存储库。你应该学到的--也许你会喜欢git --就是使用分支是多么容易。所以第一步:

  • 忘记你从你的SVN背景所知道的一切

现在我们都准备好了,这就是我们的想法。假设您当前的bitbucket上只有master

  • 克隆存储库: $ git克隆git@bitbucket.org:user/example.com.git $ cd example.com
  • 创建您的分支: $ git分支dev $ git分支暂存
  • 让其他人知道这些分支机构: $ git推送原产地dev $ git推送原始阶段
  • 开始工作! $ git签出开发$ new_file $ git添加new_file $ git提交$ git合并主#并解决冲突$ git签出母版$ git合并dev $ git推送原产地

注意:上面的例子是一个简单的分支-实验-合并,并且可能不会像您的教程那样反映确切的工作流程。

因此,简而言之,您没有不同的存储库,而是在一个存储库中有分支。在这些分支之间,您可以随心所欲地与任何工作流合并。您可以有其他不被推入原点的分支,因此它们对其他分支是隐藏的。当然,您还应该经常使用git fetch/git merge --您想要处理的分支--以确保从其他协作者那里获得最新的更改。

票数 14
EN

Stack Overflow用户

发布于 2012-07-13 02:24:19

关于git工作流的一个例子,看看我的:

http://dymitruk.com/blog/2012/02/05/branch-per-feature/

这应该会让你开始一个成熟的过程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11461680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档