如何最好地使用Git仓库进行协作?

5

通常来说,协作者使用存储库的最佳方式是什么?我们应该只从主存储库推送和拉取,还是每个协作者都有一个分支,然后在适当时合并?

如果这是一个愚蠢/基础问题,我道歉;我是 Git 新手;-)谢谢。


根据你的项目,我建议你为项目中的每个组创建一个分支。 - Saif al Harthi
1
请在标题中总结您的问题。"General git question" 只是标签的重复,没有提供任何更多的信息。 - user229044
哎呀,我希望我能因为在IRC上给你的答案而获得声誉;) - Adrian Petrescu
1个回答

4

Git支持许多不同的工作流程。请参见此处的一些概念图表,以查看一些基本选项:http://git-scm.com/about/distributed

对我来说,分支通常与协作者没有直接关系......这就是存储库本身的作用。分支用于将更改保留在当前任务的本地。


我认为这对政治也有好处,我会将主分支放在我的核心团队中,将分支放在贡献者中,如果一个分支的工作速度比其他分支快10倍,我可以从它那里拉取。 - Saif al Harthi
谢谢大家。听起来,就本地工作而言,最好有一个仅包含进入生产的内容的分支,另一个用于测试想法等,然后我可以将它们合并。创建这些分支很简单,当我不想将任何最近的更改提交到主分支时,只需切换到“测试”分支并从那里提交/推送即可?我只是对本地项目活动和git之间的交互感到困惑。如果我向我的Android项目添加一些代码并保存,除非我提交,否则这些更改将不会影响主存储库? - LuxuryMode
@LuxuryMode:我认为术语有点混淆了问题。通常,“master”指的是一个分支。在分布式版本控制系统中,你不仅可以保存,还可以提交,因为你只是本地提交。然后当事情稳定下来时,你可以将其推送到你的发布仓库(其他人可以看到的那个),此时根据你的工作流程,它可能会与其他人的工作合并。 - Mark Peters
马克,谢谢你的回复。如果我表达不清楚,对不起。我试图理解如何控制不同分支具有不同版本。换句话说,当我保存(我只是指代码,与git无关)对我的项目进行更改,但我希望,比如说,分支“B”不要有最新的更改,我该怎么做?这是通过在该分支中不提交来实现的,对吗? - LuxuryMode
1
@LuxuryMode:是的,如果您不提交到git,则不会将您的更改视为分支的一部分。然而,典型的工作流程是在您的私有存储库中启动一个新分支进行实验,但不要将该分支合并到分支“B”中(也不要推送该分支)。Git带来的重要功能之一是内部版本控制:即使您从未检入这些更改以供其他人查看,仍然可以拥有修订历史记录的能力。 - Mark Peters
@LuxuryMode:基本上,如果你避免使用 git commit -a,git 就不会提交任何未经你明确添加的更改。 - Mark Peters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接