git 文件服务器(git服务器的作用)

git 文件服务器(git服务器的作用)本文作者 IMWeb 李冬冬 原文出处 未经同意 禁止转载 一 理解 Git 1 分布式版本控制 Git 版本控制系统的设计思想是 去中心化 传统的 CVS SVN 等工具采用的是 C S 架构 只有一个中心代码仓库 位于服务器端 而一旦由于服务器系统宕机 网络不通等各种原因造成中心仓库不可用 整个 CVS SVN 系统的代码检入与检出就瘫痪了

大家好,我是讯享网,很高兴认识大家。



本文作者:IMWeb 李冬冬 原文出处: 未经同意,禁止转载

一,理解 Git

1,分布式版本控制

Git 版本控制系统的设计思想是"去中心化"。传统的 CVS 、SVN 等工具采用的是 C/S 架构,只有一个中心代码仓库,位于服务器端。而一旦由于服务器系统宕机、网络不通等各种原因造成中心仓库不可用,整个 CVS 、SVN 系统的代码检入与检出就瘫痪了。

为了摆脱对中心仓库的依赖,Git 的初始设计目标之一就是分布式控制管理。即每个成员本地都是一个完整的版本库,都可以看成是中心仓库。Git 分布式的设计理念有助于减少对中心仓库的依赖,从而有效降低中心仓库的负载,改善代码提交的灵活性。

2,离线操作

由于整个仓库都在本地,很多操作可以在不需要联网的时候进行。比如代码提交到仓库、创建合并分支、打 tag 等,只有涉及到多人合作,需要将本地的改动推送给别人时,才需要联网push本地仓库。

3,文件快照

Git 和其他版本控制系统的另一个主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。下图是 CVS、SVN 记录文件内容差异的方式

同样是文件变更提交,Git 底层文件系统存储的则为文件快照,即整个文件内容,并保存指向快照的索引(根据内容生成的一串hash值),如下图所示。如果文件内容没有发生任何变化,该文件系统则不会重复保存文件内容,只是简单地保存文件的链接。

这是 Git 同其他系统的重要区别。它完全颠覆了传统版本控制的套路,并对各个环节的实现方式作了新的设计。


讯享网

二,文件在 Git 中的几种状态

以上状态都是在本地完成转换,不需要依赖于服务器。理解了上面的几种状态,也就理解了Git 的基本工作模式了。下图介绍了几种情况下的文件状态转换

相关命令的简要说明如下:

git add file:把当前工作文件加入到暂存区域 git commit:在暂存区域生成文件快照并提交到本地仓库 git rm –cached file:删除文件在工作区中的索引,即文件回到未跟踪状态 git reset HEAD file:撤销文件暂存,可以理解为 git add file 的反操作 git checkout – file:把文件从暂存区域覆盖到工作目录,用来丢弃本地修改

三,Git 分支管理

传统的版本管理软件(如 SVN),分支操作实际上会生成一份现有代码的物理拷贝,每个分支都有自己完全独立的代码。而 Git 的分支只是一个指向当前版本的指针,新建一个分支相当于增加了一个指针,因此分支的新建和切换非常的快捷。

下面介绍一种比较实用的

上面五种分支,除了 master 和 develop 分支是一直存在的外,其他分支都是暂时存在,发布完成即需要删除。

四,Git 子模块:

Git 子模块和 SVN 里面的 externals 相似,即在代码库的子目录中中引入另外一个代码库,并保持两个仓库的独立性。

在 Git 仓库中添加一个子模块 rack:

这时会生成一个 .gitmodules 文件。这是一个配置文件,保存了项目 URL 和你拉取到的本地子目录,执行 cat .gitmodules 看看里面的内容

尽管 rack 是工作目录里的子目录,但 Git 把它视作一个子模块。两者之间本质上是两个独立的 Git 仓库,所有的 Git 命令在两个目录中都是独立工作。

五,工具介绍:

1,sourcetree:一款功能强大的 Git GUI 软件,大部分 Git 命令都可以在上面实现。重点是它将 Git 的所有 log 可视化,非常清晰的看出各个分支的走向。

下载地址:

2,BeyondCompare:合代码必备神器,支持 MAC

下载地址:

小讯
上一篇 2025-05-09 10:36
下一篇 2025-04-14 11:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/165830.html