Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
Windows下的Git请看这里:http://www.oschina.net/p/msysgit
Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux
内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此
Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux
内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如,X.org 最近就迁移到 Git 上来了,很多
Freedesktop.org 的项目也迁移到了 Git 上。
Git与CVS的区别
- 分支更快、更容易。
- 支持离线工作;本地提交可以稍后提交到服务器上。
- Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。
- Git 中的每个工作树都包含一个具有完整项目历史的仓库。
- 没有哪一个 Git 仓库会天生比其他仓库更重要。
下载 Git
1.7.0.3
该版本修正了上一个版本的一些bug,详细列表如下:
* Object files are created in a more ACL friendly way in repositories
where group permission is ACL controlled.
* "git add -i" didn't
handle a deleted path very well.
* "git blame" padded line
numbers with one extra SP when the total number of lines was one less
than multiple of ten due to an off-by-one error.
* "git fetch
--all/--multi" used to discard information for remotes that are fetched
earlier.
* "git log --author=me --grep=it" tried to find commits
that have "it" or are written by "me", instead of the ones that have
"it" _and_ are written by "me".
* "git log -g branch" misbehaved
when there was no entries in the reflog for the named branch.
*
"git mailinfo" (hence "git am") incorrectly removed initial indent from
paragraphs.
* "git prune" and "git reflog" (hence "git gc" as
well) didn't honor an instruction never to expire by setting
gc.reflogexpire to never.
* "git push" misbehaved when
branch.<name>.merge was configured without matching branch.
<name>.remote.