Git 使用及实战教程


一、Git 简介

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Linus 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如,X.org 最近就迁移到 Git 上来了,很多 Freedesktop.org 的项目也迁移到了 Git 上。

现在很多IT公司可能用的都是CVS,那么Git与CVS的区别在哪?git和svn最大的差异在于git是分布式的管理方式而svn是集中式的管理方式。

Git 与CVS 相比有如下优点:

支持离线工作;本地提交可以稍后提交到服务器上。

Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。

Git 中的每个工作树都包含一个具有完整项目历史的仓库。

没有哪一个 Git 仓库会天生比其他仓库更重要。

二、Git 基本概念、命令及其使用

2.1 Git 基本概念

1) Working Directory(工作目录)

Git的工作目录是保存当前正在工作的文件所在的目录,和working tree是相同的意思。在这个目录中的文件可能会在切换branch时被GIT删除或者替换。这个目录是个临时目录,临时存储你从GIT库中取出的文件,这些文件一直会被保存,直到下次提交。

2) GIT Directory(GIT库目录)

项目的所有历史提交都被保存在了GIT库目录中,只要你不作回滚操作,它应该不会丢失。

3) GIT Index(Git索引)

Git index 可以看作是工作目录和Git库目录之间的暂存区,和staging area是相同的意思。可以使用Git index构建一组你准备一起提交的改变。Git Index和Git Staging area是同一个意思,都是指已经被add的但尚未commit的那些内容所在的区域。最简单的查看目前什么内容在index中的方法是使用git status命令。http://www.bkjia.com

命令中”Changes to be committed“中所列的内容是在Index中的内容,commit之后进入Git Directory。

命令中“Changed but not updated”中所列的内容是在Working Directory中的内容,add之后将进入Index。

命令中“Untracked files”中所列的内容是尚未被Git跟踪的内容,add之后进入Index。

哪些操作能够改变git index中的内容?

A). git add <path>...会将working directory中的内容添加进入git index。

B). git reset HEAD <path>...会将git index中path内容删除,重新放回working directory中。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 下一页

相关内容