我想尝试git(托管在github上)进行一个新项目,但我对它是如何工作有疑问。 我正在与另一个人合作,我们是否需要有两个项目分支,然后每当我们中的一个人对代码进行更改时合并它们,或者是否可以在单个原点上成对工作?
答案 0 :(得分:6)
可以根据需要在单个项目中拥有尽可能多的其他提交者(在GitHub术语中称为协作者)。但是,最大数量取决于定价计划。请注意,公共存储库可以包含无限数量的协作者。
至于Git本身:任何对存储库具有写入权限的人都可以推送它。
答案 1 :(得分:6)
简短的回答是否定的,只要您使用的是公共存储库。前往存储库的管理部分,选择“协作者”窗格,然后添加您希望能够提交到存储库的用户数。然后,所有用户将使用相同的地址进行克隆并推送到。
请记住在推动自己的变化之前进行更改。
答案 2 :(得分:2)
首先,请允许我声明我自己对git没有多少经验。那就是说,让我回答一下。
简短的回答是:是的,在某种程度上,这就是它的样子。但它并不像你说的那么多。
我认为你出于某种原因知道SVN,但如果你不知道我就知道了,我会尝试从不同的角度写下来。
SVN方式,即集中式方式,是有一个存储库,每个人都有一个工作副本。在工作副本中,可以进行更改,然后可以将更改提交到存储库。如果两个人同时对其工作副本进行了更改,则可能需要合并更改,但如果不是这样,则一切都将是自动的。
Git是分散的。这不仅通过拥有单个存储库,而且每个用户拥有自己的存储库或存储库来实现。通常,存储库附带一个工作副本(工作副本只是普通文件,存储库位于.git
中。您对工作副本进行更改,然后将其提交到您的 repository。然后,如果您确定更改应对公众可见,则可以将更改推送到存储库到公共存储库。
(请注意,公共存储库只是公共的,因为你认为这样的git没有什么不同。如果你正在与你的同事Bob一起工作,你可以推送到bob的存储库,只有当你们两个人完成后将其推送到公共存储库,或者根本不将它推送到公共存储库,如果它只是您的私人修改。)
基本上,对于典型用法,使用git与使用SVN进行合并会有更多问题。幸运的是,git的合并也更好,所以你必须自己少做(或者我被告知)。但是,如果您在将某些内容推送到公共存储库之前没有等待数月,则不应该有太多冲突。更好的是,如果你害怕合并(没有理由,但如果你是),你可以在每次提交后立即推送 - 在这种情况下,你不会做比SVN更多的合并。你放弃了git的一些灵活性,但是很大一部分可以通过使用分支来再次被破坏(这自动意味着使用显式合并,但在git中,它真的没什么好害怕的。)
答案 3 :(得分:1)
使用git,你最终都会获得存储库的本地副本。当您推送到(或从中拉出)github存储库时,如果另一个人对自上次推/拉以来您也进行了更改的文件进行了更改,则您将被强制合并。你们两个都没有必要拥有自己的分叉。