首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无服务器的Git工作流

无服务器的Git工作流
EN

Stack Overflow用户
提问于 2011-05-10 16:10:28
回答 7查看 29.2K关注 0票数 63

Git应该是一个去中心化的系统,但我在谷歌上找到的所有教程和最佳实践工作流程都建议使用服务器(通常是GitHub,或者设置自己的服务器)

我正在使用git进行小型个人项目(2-3人),在哪里可以找到在团队成员机器之间直接同步更改的最佳实践工作流程。

或者,为什么我应该避免这种情况,而是建立一个“中央”服务器,有什么令人信服的论据?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-05-10 16:33:40

取决于你所说的“服务器”是什么意思。Git在没有中央服务器的情况下会很好地工作,尽管许多团队发现有一个中央存储库是很方便的。

如果你所说的“服务器”指的是“安装服务器软件”,那么git也可以在没有任何特殊软件的情况下,通过ssh或在文件系统上工作(不管是不是中央存储库)。

See this document for possible workflows

具有通用存储库的工作流

许多开发人员使用的工作流程是,所有开发人员将他们的更改“推送”(发送)到一个公共存储库,并从该存储库获取所有更改。如下所示:

  • Developer A推送到central
  • Developer B推送到central
  • Developer C拉取(从A和B获取更改)
  • Developer A拉取(从B)
  • ...

获取更改

在这种情况下,中央存储库可以位于其中一台开发人员的计算机上、github上或任何其他位置

使用电子邮件的工作流程

你也可以在没有任何服务器的情况下使用git,只需使用电子邮件。在这种情况下,流程如下所示:

  • Developer A以电子邮件形式将更改发送到team
  • 其他开发人员通过电子邮件

应用更改

这甚至可以通过半自动的方式来完成。

没有中央服务器的工作流程

您可以设置git使用多个“远程”存储库。需要注意的是,对于签出的存储库(也就是某人正在处理的开发人员副本),您永远不应该使用 push。因此在这种情况下,流程将如下所示:

  • Developer A生成changes
  • Developer B生成changes
  • Developer C从A提取更改
  • Developer C从B提取更改
  • Developer B提取来自A
  • ...
  • No的更改必须推送

这种工作流程很快就会导致混乱和崩溃。

票数 43
EN

Stack Overflow用户

发布于 2011-05-10 16:38:58

你首先需要做的,是仔细考虑你已经有什么样的工作流程,并配置git来使用它。一旦你启动并运行了一些东西,你就可以对它进行微调。不需要将单独的计算机设置为服务器。如果您习惯于拥有一个中央存储库,那么您需要做的就是创建一个每个人都可以推送到的空存储库。为什么不是在本地网络上?

中央回购:

代码语言:javascript
复制
mkdir foo.git
cd foo.git
git init --bare

你的回购:

代码语言:javascript
复制
mkdir foo
cd foo
git init
// add files
git add .
git commit -m "Initial commit"
git remote add origin //path/to/central/repo/foo.git
git push origin master

其他回购:

代码语言:javascript
复制
git clone //path/to/central/repo/foo.git

现在,任何人都可以直接从主分支进行推送和拉取。这应该足以让您入门了。

票数 34
EN

Stack Overflow用户

发布于 2011-05-10 17:44:11

您不一定需要将副本放在某个物理服务器上,但在某个地方拥有一个“受祝福的”存储库可能会有所帮助--让您的团队中的一个人(可能是轮换的)负责收集和管理即将被视为最终更改的人员的更改。他们可以在通常的存储库中保留一个分支,也可以在本地系统上维护一个单独的存储库来存储主源代码。

作为一个具体的例子,考虑Linux和Linus Torvalds --没有每个人都可以推送到的中央存储库,但是Linus维护了一个存储库,其中包含他认为“就绪”的所有代码(以及其他几个人,对于“就绪”的不同定义,也是如此)。这样,你就有了一个规范的代码定义,并有了一个地方来定义你的版本是什么。

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

https://stackoverflow.com/questions/5947064

复制
相关文章

相似问题

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