Git仓库源代码控制过程

我对Git的理解如下:

1)工作树—>手动进行更改的文件系统。
2)舞台区—>变化之处在于他们犯下的错误。
3)存储库—>提交的更改(本地或远程)。

基本上我真正想要的是:

1)工作树 – 我的桌面上的本地文件目录。
2)登台区 – 躺在联网的服务器上。
3)存储库 – GitHub跟踪我的源代码。

我不确定自己是否搞糊涂了所有关于Git的阅读,以及我刚刚描述的情况是否真的可行?

本质上,我希望我的团队中的所有开发人员都拥有源代码的本地工作树副本,然后能够更改我们networking上的服务器,然后从这里执行GitHub的最终提交。

它是否正确? 或者临时区域必须在每个本地机器上?

亲切的问候

我认为在这里检查git中使用的术语是值得的:

  • git工作树:你正在处理的文件
  • git临时区域:你在下一次提交时指出你想要的文件
  • git repository:机器上的一个目录,包含工作文件以及一个.git目录,其中包含完整的版本和分支历史logging等。

每个开发人员在将另一个存储库克隆到他们的机器时都有完整的git存储库。 实际上,每个git存储库都包含所有这些元素(除了我们不需要的裸存储库)。

你想要的更多的是一个pipe理团队工作stream程的过程政策 。 你可以像这样设置它:

  1. 每个开发者在他们的机器上都有他们的工作git仓库
    • 开发者进行提交
    • 让它成为上面定义的工作树
  2. 一旦开发人员完成工作,他们git push这些提交git push送到某个networking服务器上的git存储库
    • 这是你做testing的地方,等等
    • 这是你的团队的登台服务器
  3. 当新的提交通过所有的testing,你git push他们到github最终回购
    • 这是你的团队的主要权威资料库

请注意,每个项目符号都是一个git仓库 ,可以满足您的任何需求并定义它。

开发人员在其工作站上进行提交。 在那之后,所有的git所做的就是在回购之间进行这些提交,无论它们在哪里,以及它们可以提供什么function。

希望清理一下。

那么这在技术上可能是可能的,但这不是在分期领域背后的想法。

暂存区的要点是要控制你要提交的内容,例如你不想提交工作树中所做的所有更改。

也许你在树中改变了几个不同的东西,只想提交其中的一些,或者你想多次提交它们(给出不同的提交注释)。 这就是你使用临时区域的原因。

这并不意味着把东西传递给服务器。

要做到这一点,你应该创build一个分支(像“staging_branch”),承诺,然后通过一些CI工具如CruiseControl在服务器上签出。 然后,当一切正常,你可以将它合并到你的主分支。

或者只是提交到你的主分支,并修复它,如果出错:-)。

其实我刚刚看到Pro Git的作者的一个很棒的networking广播(链接到本书的全文)。 O'Reily应该立即张贴档案video, 保持你的眼睛去皮 。

基本上,你必须学习几个基本的git命令: initcommitcheckoutpushbranch 。 这些将满足您的大部分需求。

(一定要检查Pro Git的链接,它是一本关于git的免费书籍)