分布式版本控制系统 Git v2.8.3 发布

jopen 3年前
   <p style="text-align: center;"><img alt="" src="https://simg.open-open.com/show/5c560e139fb603958c1e10433cb8108b.jpg" /></p>    <h2>简介</h2>    <p>        Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。</p>    <h2>更新日志</h2>    <ul>     <li>"git send-email" now uses a more readable timestamps when formulating a message ID.</li>     <li>The repository set-up sequence has been streamlined (the biggest change is that there is no longer git_config_early()), so that we do not attempt to look into refs/ when we know we do not have a Git repository.</li>     <li>When "git worktree" feature is in use, "git branch -d" allowed deletion of a branch that is checked out in another worktree</li>     <li>When "git worktree" feature is in use, "git branch -m" renamed a branch that is checked out in another worktree without adjusting the HEAD symbolic ref for the worktree.</li>     <li>"git format-patch --help" showed `-s` and `--no-patch` as if these are valid options to the command.  We already hide `--patch` option from the documentation, because format-patch is about showing the diff, and the documentation now hides these options as well.</li>     <li>A change back in version 2.7 to "git branch" broke display of a symbolic ref in a non-standard place in the refs/ hierarchy (we expect symbolic refs to appear in refs/remotes//HEAD to point at the primary branch the remote has, and as .git/HEAD to point at the branch we locally checked out).</li>     <li>A partial rewrite of "git submodule" in the 2.7 timeframe changed the way the gitdir: pointer in the submodules point at the real repository location to use absolute paths by accident. This has been corrected.</li>     <li>"git commit" misbehaved in a few minor ways when an empty message is given via -m '', all of which has been corrected.</li>     <li>Support for CRAM-MD5 authentication method in "git imap-send" did not work well.</li>     <li>The socks5:// proxy support added back in 2.6.4 days was not aware that socks5h:// proxies behave differently.</li>     <li>"git config" had a codepath that tried to pass a NULL to printf("%s"), which nobody seems to have noticed.</li>     <li>On Cygwin, object creation uses the "create a temporary and then rename it to the final name" pattern, not "create a temporary, hardlink it to the final name and then unlink the temporary" pattern.</li>     <li>This is necessary to use Git on Windows shared directories, and is already enabled for the MinGW and plain Windows builds. It also has been used in Cygwin packaged versions of Git for quite a while. See http://thread.gmane.org/gmane.comp.version-control.git/291853 and http://thread.gmane.org/gmane.comp.version-control.git/275680.</li>     <li>"git replace -e" did not honour "core.editor" configuration.</li>     <li>Upcoming OpenSSL 1.1.0 will break compilation b updating a few APIs we use in imap-send, which has been adjusted for the change.</li>     <li>"git submodule" reports the paths of submodules the command recurses into, but this was incorrect when the command was not run from the root level of the superproject.</li>     <li>The test scripts for "git p4" (but not "git p4" implementation itself) has been updated so that they would work even on a system where the installed version of Python is python 3.</li>     <li>The "user.useConfigOnly" configuration variable makes it an error if users do not explicitly set user.name and user.email. However, its check was not done early enough and allowed another error to trigger, reporting that the default value we guessed from the system setting was unusable. This was a suboptimal end-user experience as we want the users to set user.name/user.email without relying on the auto-detection at all.</li>     <li>"git mv old new" did not adjust the path for a submodule that lives as a subdirectory inside old/ directory correctly.</li>     <li>"git push" from a corrupt repository that attempts to push a large number of refs deadlocked; the thread to relay rejection notices for these ref updates blocked on writing them to the main thread, after the main thread at the receiving end notices that the push failed and decides not to read these notices and return a failure.</li>     <li>A question by "git send-email" to ask the identity of the sender has been updated.</li>     <li>Recent update to Git LFS broke "git p4" by changing the output from its "lfs pointer" subcommand.</li>     <li>Some multi-byte encoding can have a backslash byte as a later partof one letter, which would confuse "highlight" filter used in gitweb.<br />  </li>    </ul>    <h2>下载地址</h2>    <ul>     <li><a href="/misc/goto?guid=4958990489844106552">Mac OS X</a> <a href="/misc/goto?guid=4958990489951376624">Windows</a> <a href="/misc/goto?guid=4958990490060804357">Linux</a> <a href="/misc/goto?guid=4958990490060804357">Solaris</a></li>     <li><a href="/misc/goto?guid=4958990490177031602" rel="nofollow"><strong>Source code</strong> (zip)</a></li>     <li><a href="/misc/goto?guid=4958990490291242217" rel="nofollow"><strong>Source code</strong> (tar.gz)</a></li>    </ul>