Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 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 v1.7.1.1 Release Notes Fixes since v1.7.1 * Authentication over http transport can now be made lazily, in that the request can first go to a URL without username, get a 401 response and then the client will ask for the username to use. * We used to mistakenly think "../work" is a subdirectory of the current directory when we are in "../work-xyz". * The attribute mechanism now allows an entry that uses an attribute macro that set/unset one attribute, immediately followed by an overriding setting; this makes attribute macros much easier to use. * We didn't recognize timezone "Z" as a synonym for "UTC" (75b37e70). * In 1.7.0, read-tree and user commands that use the mechanism such as checkout and merge were fixed to handle switching between branches one of which has a file while the other has a directory at the same path correctly even when there are some "confusing" pathnames in them. But the algorithm used for this fix was suboptimal and had a terrible performance degradation especially in larger trees. * "git am -3" did not show diagnosis when the patch in the message was corrupt. * After "git apply --whitespace=fix" removed trailing blank lines in an patch in a patch series, it failed to apply later patches that depend on the presence of such blank lines. * "git bundle --stdin" segfaulted. * "git checkout" and "git rebase" overwrote paths that are marked "assume unchanged". * "git commit --amend" on a commit with an invalid author-name line that lacks the display name didn't work. * "git describe" did not tie-break tags that point at the same commit correctly; newer ones are preferred by paying attention to the tagger date now. * "git diff" used to tell underlying xdiff machinery to work very hard to minimize the output, but this often was spending too many extra cycles for very little gain. * "git diff --color" did not paint extended diff headers per line (i.e. the coloring escape sequence didn't end at the end of line), which confused "less -R". * "git fetch" over HTTP verifies the downloaded packfiles more robustly. * The memory usage by "git index-pack" (run during "git fetch" and "git push") got leaner. * "GIT_DIR=foo.git git init --bare bar.git" created foo.git instead of bar.git. * "git log --abbrev=$num --format='%h' ignored --abbrev=$num. * "git ls-files ../out/side/cwd" refused to work. * "git merge --log" used to replace the custom message given by "-m" with the shortlog, instead of appending to it. * "git notes copy" without any other argument segfaulted. * "git pull" accepted "--dry-run", gave it to underlying "git fetch" but ignored the option itself, resulting in a bogus attempt to merge unrelated commit. * "git rebase" did not faithfully reproduce a malformed author ident, that is often seen in a repository converted from foreign SCMs. * "git reset --hard" started from a wrong directory and a working tree in a nonstandard location is in use got confused. * "git send-email" lacked a way to specify the domainname used in the EHLO/HELO exchange, causing rejected connection from picky servers. It learned --smtp-domain option to solve this issue. * "git send-email" did not declare a content-transfer-encoding and content-type even when its payload needs to be sent in 8-bit. * "git show -C -C" and other corner cases lost diff metainfo output in 1.7.0. * "git stash" incorrectly lost paths in the working tree that were previously removed from the index. * "git status" stopped refreshing the index by mistake in 1.7.1. * "git status" showed excess "hints" even when advice.statusHints is set to false. And other minor fixes and documentation updates. Git 1.7.1.1下载地址:http://kernel.org/pub/software/scm/git/git-1.7.1.1.tar.gz |