赞
踩
Git是一个分布式版本控制系统, 在这类系统中,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。 因为你在本地磁盘上就有项目的完整历史,所以近乎所有操作都是本地执行,举个例子,要浏览项目的历史,Git 不需外连到服务器去获取历史,然后再显示出来——它只需直接从本地数据库中读取。 你能立即看到项目历史。所以速度非常快。
直接记录快照,而非差异比较
其他版本控制系统,大部分都是基于差异(delta-based) 的版本控制。每次存储与初始版本的差异。
Git 不按照以上方式对待或保存数据。反之,Git 更像是把数据看作是对小型文件系统的一系列快照。 在 Git 中,每当你提交更新或保存项目状态时,它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。
Git 有三种状态,你的文件可能处于其中之一: 已提交(committed)、已修改(modified) 和 已暂存(staged)。
已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交表示数据已经安全地保存在本地git仓库中。
工作区是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。
Git 仓库目录是 Git 用来保存项目的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。
基本的 Git 工作流程如下:
1.在工作区中修改文件。
2.将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
3.提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。
常用的git指令
$ git init //创建一个新的 Git 仓库
$ git clone https://github.com/libgit2/libgit2 mylibgit //克隆远程仓库
$ git status //查看文件状态
$ git add CONTRIBUTING.md //把文件加入到缓存区,等待下一次的提交
$ git commit //提交在缓存区的文件(形成一个快照,相当于一个版本)
远程仓库
远程仓库是指托管在因特网或其他网络中的你的项目的版本库。
$ git fetch <remote> //这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。必须注意 git fetch 命令只会将数据下载到你的本地仓库——它并不会自动合并或修改你当前的工作。
$ git pull //通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支 pull=fetch+merge
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。