我对Git (以及VC )非常陌生,我正在努力理解使用分支的Dev>Staging>Live工作流背后的概念。
我正在尝试应用这工作流的一部分,它使用开发工具分支和发布分支,而不是固定的阶段。
在尝试使用Git之前,我有一个使用SVN的“相同”工作流。但是,我们没有为每个阶段创建分支,而是使用了分离的存储库。既然我想申请分支机构,事情就变得有点模糊了。
我可以理解工作流背后的想法,但不能从技术角度理解它。
创建它所遵循的步骤:
创建文件夹
user:/var/www/$ mkdir dev.example.local
user:/var/www/$ mkdir staging.example.local
user:/var/www/$ mkdir example.localInit存储库
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 .关于开发分支的一些工作
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当新版本准备就绪时,
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我很确定我没有遵循正确的步骤。那么,有什么“正确的方法”来:
和:
相关信息:
发布于 2012-07-12 22:45:20
不需要创建不同的存储库。你应该学到的--也许你会喜欢git --就是使用分支是多么容易。所以第一步:
现在我们都准备好了,这就是我们的想法。假设您当前的bitbucket上只有master:
注意:上面的例子是一个简单的分支-实验-合并,并且可能不会像您的教程那样反映确切的工作流程。
因此,简而言之,您没有不同的存储库,而是在一个存储库中有分支。在这些分支之间,您可以随心所欲地与任何工作流合并。您可以有其他不被推入原点的分支,因此它们对其他分支是隐藏的。当然,您还应该经常使用git fetch/git merge --您想要处理的分支--以确保从其他协作者那里获得最新的更改。
发布于 2012-07-13 02:24:19
关于git工作流的一个例子,看看我的:
http://dymitruk.com/blog/2012/02/05/branch-per-feature/
这应该会让你开始一个成熟的过程。
https://stackoverflow.com/questions/11461680
复制相似问题