2012-07-28 65 views
7

仍然有一个很难得到我的头缠着分期的概念,因为它适用于Git的。部署Git概念

可以在任何类比可以用SVN做? 在Git中创建阶段级别的主要目的是什么?

+1

迂腐:它不是“GIT”,它是“Git”。它不是任何事物的首字母缩略词,莱纳斯将它命名为自己。 – millimoose 2012-07-28 17:36:10

+1

好的,谢谢我的Git;) – 2012-07-28 19:53:05

回答

7

相似之处:

文件,应该是库的一部分,必须被添加到被跟踪。两种工具都使用add命令来完成此操作。添加文件意味着准备提交。

差异:

的Git允许一些进一步的各种细节的添加文件时。您可以决定添加一个完整的文件或不同的代码行。 将文件添加到指数阶段允许更多的灵活性。 SVN会自动提交已添加到存储库的文件的所有更改。 Git将决定与用户的每个提交操作关联的更改。换句话说:Git中的下一个提交只包含已经执行的更改(行或文件),无论文件的跟踪状态如何。 SVN自动包含对所跟踪文件的所有更改。

其他信息:

尝试读一些职位描述Git的工作流,如从Oliver Steele之一。但请注意,有没有一个的方式来使用Git - 有很多。如果你愿意,你可以像使用SVN一样使用Git。
不要指望在短时间内理解Git的哲学。我花了一年时间才弄懂它,但我仍然在学习使用它的新方法。如果你用SVN思维方式成长起来,我觉得更难。那里有很多材料:文章,视频...... - 慢慢来,尝试其中的一些。这是我收集的清单中的一个选择。

+0

谢谢。我认为'pull'命令与SVN'update'命令非常相似。没有? – 2012-07-28 21:07:38

+0

我是否正确地认为在使用Git时会阻止发生'冲突',因为在与另一个开发人员合作时,您必须在推送之前先进行拉取操作? – 2012-07-28 22:00:14

+0

而且更新有点类似于Git pull? – 2012-07-28 22:10:32

6

临时区域的主要优点是,你可以很容易犯的一个给定文件的更改只是一部分。 (例如,使用git add -p)。据我所知,在SVN中执行“部分”提交的唯一方法是在每个文件级别上,或手动备份文件,然后临时恢复所做的更改想要提交。

这如果(像我)你不是一个高度组织化的开发人员,希望能够理清变成“整齐”事后承诺是巨大的。这遵循Git的一般态度,宁愿让你灵活执行严格规定。如果你不需要它,你总是可以不使用它,并使用git commit -a ...

没有用SVN进行,因为SVN不Git和不具备这样的概念类比。

4

这里有一些显示分期有用的情景:

  • 你在一个特定的作品上工作,并在整个项目中做了不少变化。在测试完整的东西之前,你不想提交它们。但是这些变化往往可以独立得足以做出多个逻辑提交而不是单个提交。这是您选择零件并进行多次提交时的情况。

  • 分段在调试时特别有用。你可以在日志报告中查看错误的来源。然后,您进行修复,然后使用这些日志语句再次测试。但是,您希望在修改代码之前提交修复程序以删除这些日志语句。

  • 另一种被证明有帮助的场景是,当你处于某种事情的中间时,发现一些不相干的东西,比如打字错误,想要修复并快速解决问题。

还有其他几种这样的情况,一旦你弄不清楚这个概念,你可能无法处理任何缺乏这个概念的东西:)。

PS:我还没有使用过SVN,所以无法进行两者之间的比较。

+1

你在这里说的没有一个需要一个临时区域。例如,您可以使用'git commit <特定文件>'对多个提交进行多次更改。当然,这是通过暂存区域,但只是简单地直接进入提交。 – Kaz 2014-11-13 20:32:25

+0

我只是想强调通过一些场景进行分段的概念。您可以通过多种方式实现单一目标。这既不是分段有用的场景的完整列表,也不是实现这些结果的唯一方法。只是从我的经验中了解样本的优点。 – Sailesh 2014-11-14 07:01:28