SVN与Git

9140阅读 1评论2016-08-23 vaqeteart
分类:LINUX

许久未上CU了,也许自从用上orgmode和git之后,有了更好的方式组织内容。

但是总是对这里情有独钟。

这里是我最早发布内容的地方,以后找到更好的方式,希望能陆续也同步至此。

发一篇文章,共学习和参考。

内容
─────────────────

1 原理和概念
.. 1.1 阶段1, 文件系统(FS)
.. 1.2 阶段2, 集中式版本控制(CVCS)
.. 1.3 阶段3, 分布式版本控制(DVCS)
2 subversion与git原理图
.. 2.1 一个svn服务端,简单,但是慢
.. 2.2 两个svn服务端,快,但是复杂
.. 2.3 如何使其简单、并且快?
.. 2.4 使用 分布式 git 服务端,即简单又快。
3 理解的关键点
.. 3.1 分布式的理解
.. 3.2 工作流程、状态
.. 3.3 工作空间(work area)、缓存空间(staged area)、库(repository)
.. 3.4 针对 `git' 的内容
4 git常用操作
.. 4.1 本地相关
.. 4.2 与它人协作相关
.. 4.3 冲突处理相关
.. 4.4 其它


subversion与git简介


1 原理和概念
════════════

  这里主要讲述git。先了解一下从版本控制的角度上,对资料进行管理的发展简程。


1.1 阶段1, 文件系统(FS)
───────────

  早期,文件基本上通过操作系统文件系统管理。

  资料以目录路径的方式存于文件系统中,常见的文件系统如 `fat32', `ext3' 等。


1.2 阶段2, 集中式版本控制(CVCS)
───────────────

  后来,出现了版本控制的概念,对开发的内容通过集中式版本控制工具进行。

  除了文件系统中体现的资料路径外,还通过中心服务器,用版本号的方式,可对
  每次修改的历史进行管理,

  常见的集中版本控制工具如 `vcs', `svn' 。


1.3 阶段3, 分布式版本控制(DVCS)
───────────────

  再后来,由于集中式版本控制中,有关历史的全部内容集中在一处服务器中管理,
  稳定性,以及速度上,可迁移上都不方便,于是出现了分布式版本控制。

  不是用版本号而是用每次提交的内容指纹来管理资料,不仅通过一个中心服务器
  进行版本控制,任意远程、本地都可参与进来,并且它们之间可相互同步其管理
  信息。

  常见的工具用提交管理,如 `git', `mercurial' 。


2 subversion与git原理图
═══════════════════════

2.1 一个svn服务端,简单,但是慢
───────────────





2.2 两个svn服务端,快,但是复杂
───────────────






2.3 如何使其简单、并且快?
─────────────






2.4 使用 分布式 git 服务端,即简单又快。
────────────────────






3 理解的关键点
══════════════

  下面给出便于理解的关键,详细内容自行查阅。


3.1 分布式的理解
────────

  基于 `git' 的分布式版本控制,每个端都是独立的服务器,通过 `git pull' /
  `git push' 相互同步。


3.2 工作流程、状态
─────────

  主要指 `svn & git' 的 `add,commit,status', 各有何不同?


3.3 工作空间(work area)、缓存空间(staged area)、库(repository)
───────────────────────────────


3.4 针对 `git' 的内容
──────────

  `object', `snapshot', `index', `repository'.

  `git directory', `git work directory', `fast-forward'.


4 git常用操作
═════════════

  下面给出最常用的 `git' 操作子命令,详细内容自行查阅。使用之时,注意需要
  给出 `git' 关键字以及参数,例如:
  ┌────
  │ $git commit -m 'one commit tip.'
  └────


4.1 本地相关
──────

  `branch', `merge', `checkout', `reset', `clean', `log', `commit',
  `status', `diff'.


4.2 与它人协作相关
─────────

  `pull', `push', `remote', `rebase', `format-patch', `am'.


4.3 冲突处理相关
────────

  `mergetool', `merge', `stash'


4.4 其它
────

  `config', `clean', `gc', `help'.

上一篇:Emacs撤销、重做和重复
下一篇:FFmpeg使用手册 - FFmpeg 的基本组成

文章评论