分布式版本控制工具,git 1.7.9正式版发布
fmms 13年前
<p><a href="/misc/goto?guid=4958183577944756424" target="_blank">Git</a>是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。</p> <p>Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。</p> <p>Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如,X.org 最近就迁移到 Git 上来了,很多 Freedesktop.org 的项目也迁移到了 Git 上。</p> <h2>Git与CVS的区别</h2> <ul> <li>分支更快、更容易。 </li> <li>支持离线工作;本地提交可以稍后提交到服务器上。 </li> <li>Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。 </li> <li>Git 中的每个工作树都包含一个具有完整项目历史的仓库。 </li> <li>没有哪一个 Git 仓库会天生比其他仓库更重要。 </li> </ul> <p>git 1.7.9正式版放出。2012-01-29.</p> <p>完全改进</p> <p>Git v1.7.9 Release Notes</p> <p>========================<br /> <br /> Updates since v1.7.8<br /> --------------------<br /> <br /> * gitk updates accumulated since early 2011.<br /> <br /> * git-gui updated to 0.16.0.<br /> <br /> * git-p4 (in contrib/) updates.<br /> <br /> * Git uses gettext to translate its most common interface messages<br /> into the user's language if translations are available and the<br /> locale is appropriately set. Distributors can drop new PO files<br /> in po/ to add new translations.<br /> <br /> * The code to handle username/password for HTTP transactions used in<br /> "git push" & "git fetch" learned to talk "credential API" to<br /> external programs to cache or store them, to allow integration with<br /> platform native keychain mechanisms.<br /> <br /> * The input prompts in the terminal use our own getpass() replacement<br /> when possible. HTTP transactions used to ask for the username without<br /> echoing back what was typed, but with this change you will see it as<br /> you type.<br /> <br /> * The internals of "revert/cherry-pick" have been tweaked to prepare<br /> building more generic "sequencer" on top of the implementation that<br /> drives them.<br /> <br /> * "git rev-parse FETCH_HEAD" after "git fetch" without specifying<br /> what to fetch from the command line will now show the commit that<br /> would be merged if the command were "git pull".<br /> <br /> * "git add" learned to stream large files directly into a packfile<br /> instead of writing them into individual loose object files.<br /> <br /> * "git checkout -B <current branch=""> <elsewhere> " is a more intuitive <br /> way to spell "git reset --keep <elsewhere> ". <br /> <br /> * "git checkout" and "git merge" learned "--no-overwrite-ignore" option <br /> to tell Git that untracked and ignored files are not expendable. <br /> <br /> * "git commit --amend" learned "--no-edit" option to say that the <br /> user is amending the tree being recorded, without updating the <br /> commit log message. <br /> <br /> * "git commit" and "git reset" re-learned the optimization to prime <br /> the cache-tree information in the index, which makes it faster to <br /> write a tree object out after the index entries are updated. <br /> <br /> * "git commit" detects and rejects an attempt to stuff NUL byte in <br /> the commit log message. <br /> <br /> * "git commit" learned "-S" to GPG-sign the commit; this can be shown <br /> with the "--show-signature" option to "git log". <br /> <br /> * fsck and prune are relatively lengthy operations that still go <br /> silent while making the end-user wait. They learned to give progress <br /> output like other slow operations. <br /> <br /> * The set of built-in function-header patterns for various languages <br /> knows MATLAB. <br /> <br /> * "git log --format=' <format> '" learned new %g[nNeE] specifiers to <br /> show information from the reflog entries when walking the reflog <br /> (i.e. with "-g"). <br /> <br /> * "git pull" can be used to fetch and merge an annotated/signed tag, <br /> instead of the tip of a topic branch. The GPG signature from the <br /> signed tag is recorded in the resulting merge commit for later <br /> auditing. <br /> <br /> * "git log" learned "--show-signature" option to show the signed tag <br /> that was merged that is embedded in the merge commit. It also can <br /> show the signature made on the commit with "git commit -S". <br /> <br /> * "git branch --edit-description" can be used to add descriptive text <br /> to explain what a topic branch is about. <br /> <br /> * "git fmt-merge-msg" learned to take the branch description into <br /> account when preparing a merge summary that "git merge" records <br /> when merging a local branch. <br /> <br /> * "git request-pull" has been updated to convey more information <br /> useful for integrators to decide if a topic is worth merging and <br /> what is pulled is indeed what the requestor asked to pull, <br /> including: <br /> <br /> - the tip of the branch being requested to be merged; <br /> - the branch description describing what the topic is about; <br /> - the contents of the annotated tag, when requesting to pull a tag. <br /> <br /> * "git pull" learned to notice 'pull.rebase' configuration variable, <br /> which serves as a global fallback for setting 'branch. <name> .rebase' <br /> configuration variable per branch. <br /> <br /> * "git tag" learned "--cleanup" option to control how the whitespaces <br /> and empty lines in tag message are cleaned up. <br /> <br /> * "gitweb" learned to show side-by-side diff. <br /> <br /> Also contains minor documentation updates and code clean-ups. <br /> 下载:http://git-core.googlecode.com/files/git-1.7.9.tar.gz </name> </format> </elsewhere> </elsewhere> </current></p>