工作流程最佳实践与操想?
-
05-07-2019 - |
题
我已经令和审查与我的小队的人我们的项目。我不能不认为,我们不这样做是正确的。我有兴趣听取其他人如何使用这一工作流程内他们的项目。
我们如何使用它:
我们支之前的每一个变化,合并成为主,承诺在本地,并推动我们想回购。然后,我们ssh到我们的测试环境和拉的主支想回购。我们还没有完全抓住了 rebase
, fetch
或 tagging
只是还没有。
我怎么会喜欢用: 我想要能够ssh到不同的服务器和拉的一个具体标记的版本,如"第1阶段"进入服务器。这是可能的,或者,我需要两个不同的审查repos?
是你应该 git pull
一个具体的分支的成的网络服务器或者创建一个新的别名 git push
来?
你可以控制释放候选人或环境(试验、研发、生产)内的一个git仓库?或者你需要多?
如果拉是解决方案,你可以拉一个特定的 tag
?
解决方案
基本上,你可以很好的功能有一个"中心"审查存储库。
- 标签是不可改变的指针,它们可以使用(和推)的任何时间,以便进行检查出来的任何测试或者生产环境。允许某些验证采取但通常不提供用于发展。
- 拉一支意味着你可以做一些变化在该分支(由于一些修正和调整,使一旦代码是在生产环境中),并把它推回的所有其他开发的储存库,为他们拉回来,并考虑。
因此,它取决于你是什么做那些服务器:只验证(地位接受或拒绝的),或者还进一步的事态发展。
在每种情况下,一个标记一个适当的命名约定是好的,跟踪具体的承诺的历史,但分支机构都是必要的,每次你需要隔离的发展努力。
其他提示
阅读 Pro Git书籍。你可以阅读一年的git手册页但仍然没有得到它:尝试通过阅读手册来学习git就像试图通过阅读字典来学习一门新语言,它可以完成。本书将向您介绍一些使用git可以使用的工作流程,以及要使用的git命令以及使用它们的上下文。
在GitHub上,我为我的公司使用了一个帐户,这是“祝福”的地方。代码生活;然后我保留了一个私人的分支,我在那里处理那些不太稳定的东西。在我的本地机器上,我在一个仓库中处理两个,因此master是受祝福的代码(并推送到公司帐户),而所有其他分支都是我的fork。这是我的.git / config的一部分:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:xiongchiamiov/fourU.git
[branch "hacking"]
remote = origin
merge = refs/heads/hacking
[branch "editor"]
remote = origin
merge = refs/heads/editor
[branch "problem-utils"]
remote = origin
merge = refs/heads/problem-utils
[branch "tests"]
remote = origin
merge = refs/heads/tests
[remote "trunk"]
fetch = +refs/heads/*:refs/remotes/trunk/*
url = git@github.com:xyztextbooks/fourU.git
[branch "master"]
remote = trunk
merge = refs/heads/master
由于我已经为公司仓库提交了权限,因此我可以将提交从一个分支合并(或樱桃选择)到另一个分支,并将其推送到适当的位置。现在,单独的repos当然不是必需的,但由于这是一个开源项目,我喜欢保持“官方”。 repo没有由我的切线创建的随机分支。一旦它到达版本控制点,将有一个0.x分支,每个版本都有标签(0.1,0.1.1,0.2等),这是特别有利的,因为github自动创建文件的tarball在每个标签上,非常适合将特定版本下载到不需要完整历史记录的机器上。
你应该阅读github博客;他们有一些很好的帖子描述了他们的部署工作流程,这当然主要涉及git。