swa*_*tin 20 svn git branch fork github
我一直在使用Github,但是我对Git背后的一些关键概念感到有些困惑.
我对VCS的背景是从Source Safe开始,然后转换为SVN和TFS.我想我一直在思考CVS系统,比如SVN和TFS.
在Git中被认为是服务器端和客户端.据我所知,他们之间并没有明显的区别.
从技术意义上讲,Fork意味着什么.它是分支的"类型"吗?
Wat在git中的分支意味着什么?它和SVN一样吗?
此外,我一直在寻找Git核心概念的良好可视化,但没有发现任何适合我的.
Ana*_*tts 38
以下是了解Git的方法:
Git的核心只是一种保存和恢复快照的方法.每个快照都有一个"ID"(SHA1),并且可能有一个或多个"refs"(指针).分店?只是特定快照的友好名称.标签?一样.头?这只是当前快照的"代名词".方便地,这些快照每个都带有对已更改内容的描述 - 此描述是提交消息.
Git是一个DVCS(分布式版本控制系统)
Git(本地)在您提交文件的项目根目录下有一个目录(.git /).
Git是一种DVCS(分布式版本控制系统),它使您能够经常保存文件的副本("版本"),并能够合并超过1人完成的工作,并且您还可以脱机工作.
Git不同于更传统的CVS(代码版本控制系统),如SVN(Subversion)或CVS,它们有分支,但没有"本地和远程"概念(您的提交直接指向远程).使用git,您首先提交到本地存储库,然后将这些更改推送到远程.这鼓励更频繁的提交和以较小的块完成工作.它还可以更好地支持离线工作,因为您可以在离线时提交,然后在下次在线时同步和拉/推.
Git通过保存整个文件将每个更改存储到文件中.它在这方面与svn不同,你可以在不通过delta变化"重新创建"任何单个版本的情况下使用它.
Git不会"锁定"文件并需要对编辑进行独占锁定(像pvcs这样的旧系统会浮现在脑海中).它实际上是在拉取或提取期间将文件更改(在同一文件中!)合并在一起的一项了不起的工作.您需要进行手动更改的唯一时间是两次更改涉及相同的代码行.
这是您想要保留主代码,复制(分支)然后在该分支内工作的时候.完成后,将分支合并回主存储库.其中一个例子可能是您正在升级到新版本.
一些商店和个人在不同的分支机构中完成所有工作,无论是功能,错误修复还是家务,还有一个单独的流程和/或指定人员将这些分支合并到主服务器中.
因此,对于分支机构,您正在管理分支,而使用分支,其他人控制接受代码.这仍然是标准用法.
github(远程)是一个远程源,如果您已经(或被添加到)这样的存储库,您通常会将这些已提交的更改推送到其中.
所以本地和远程实际上是截然不同的.
当你'叉',即点击 -
,在github上,你在你的 github帐户中创建代码的副本.第一次执行此操作时可能会有点微妙,因此请务必确保查看其下方列出的代码库的存储库 - 原始所有者或"分叉"和您,例如
获得本地副本后,您可以根据需要进行更改(通过拉动并将其推送到本地计算机).当你完成后,你提交一个"拉请求"顶部原始存储库所有者/管理员(听起来很奇特,但实际上你只需点击这个: -
)他们'拉'进来.
对于一起处理代码的团队来说,更常见的是"克隆"存储库(单击存储库主屏幕上的"复制"图标).然后,本地输入git clone [paste]这将在本地设置你,你可以直接推送到共享的github位置.
我没有核心概念的可视化,但是如果你想看看这些变化是如何工作的,你就无法用我称之为"地铁地图"的gui击败可视化工具gitg(gitx for mac)(特别是伦敦地铁),非常适合展示谁做了什么,事情如何变化,分歧和合并等等.你也可以用它来提交和管理你的本地变化......

| 归档时间: |
|
| 查看次数: |
4189 次 |
| 最近记录: |