Git 2.7.0 RC0 发布

简介:

Git 2.7.0 RC0 发布,Git 2.7.0 更新内容如下:

UI, Workflows & Features

  • "git remote" learned "get-url" subcommand to show the URL for a
    given remote name used for fetching and pushing.
  • There was no way to defeat a configured rebase.autostash variable
    from the command line, as "git rebase --no-autostash" was missing.
  • "git log --date=local" used to only show the normal (default)
    format in the local timezone. The command learned to take 'local'

as an instruction to use the local timezone with other formats,

  • The refs used during a "git bisect" session is now per-worktree so
    that independent bisect sessions can be done in different worktrees

created with "git worktree add".

  • Users who are too busy to type three extra keystrokes to ask for
    "git stash show -p" can now set stash.showPatch configuration

varible to true to always see the actual patch, not just the list
of paths affected with feel for the extent of damage via diffstat.

  • "quiltimport" allows to specify the series file by honoring the
    $QUILT_SERIES environment and also --series command line option.
  • The use of 'good/bad' in "git bisect" made it confusing to use when
    hunting for a state change that is not a regression (e.g. bugfix).

The command learned 'old/new' and then allows the end user to
say e.g. "bisect start --term-old=fast --term-new=slow" to find a
performance regression.

  • "git interpret-trailers" can now run outside of a Git repository.
  • "git p4" learned to reencode the pathname it uses to communicate
    with the p4 depot with a new option.
  • Give progress meter to "git filter-branch".
  • Allow a later "!/abc/def" to override an earlier "/abc" that
    appears in the same .gitignore file to make it easier to express

"everything in /abc directory is ignored, except for ...".

  • Teach "git p4" to send large blobs outside the repository by
    talking to Git LFS.
  • Prepare for Git on-disk repository representation to undergo
    backward incompatible changes by introducing a new repository

format version "1", with an extension mechanism.

  • "git worktree" learned a "list" subcommand.
  • "git clone --dissociate" learned that it can be used even when
    "--reference" was not used at the same time.
  • "git blame" learnt to take "--first-parent" and "--reverse" at the
    same time when it makes sense.
  • "git checkout" did not follow the usual "--[no-]progress"
    convention and implemented only "--quiet" that is essentially

a superset of "--no-progress". Extend the command to support the
usual "--[no-]progress".

  • The semantics of tranfer.hideRefs configuration variable have been
    extended to work better with the ref "namespace" feature that lets

you throw unrelated bunches of repositories in a single physical
repository and virtually serve them as separate ones.

  • send-email config variables whose values are pathnames now go
    through the ~username/ expansion.
  • bash completion learnt to TAB-complete recipient addresses given
    to send-email.
  • The credential-cache daemon can be told to ignore SIGHUP to work
    around issue when running Git from inside emacs.

Performance, Internal Implementation, Development Support etc.

  • The infrastructure to rewrite "git submodule" in C is being built

    1. Let's polish these early parts well enough and make
    2. graduate to 'next' and 'master', so that the more involved

follow-up can start cooking on a solid ground.

  • Some features from "git tag -l" and "git branch -l" have been made
    available to "git for-each-ref" so that eventually the unified

implementation can be shared across all three. The version merged
to the 'master' branch earlier had a performance regression in "tag
--contains", which has since been corrected.

  • Because "test_when_finished" in our test framework queues the
    clean-up tasks to be done in a shell variable, it should not be

used inside a subshell. Add a mechanism to allow 'bash' to catch
such uses, and fix the ones that were found.

  • The debugging infrastructure for pkt-line based communication has
    been improved to mark the side-band communication specifically.

(merge fd89433 jk/async-pkt-line later to maint).

  • Update "git branch" that list existing branches, using the
    ref-filter API that is shared with "git tag" and "git

for-each-ref".

  • The test for various line-ending conversions has been enhanced.
  • A few test scripts around "git p4" have been improved for
    portability.
  • Many allocations that is manually counted (correctly) that are
    followed by strcpy/sprintf have been replaced with a less error

prone constructs such as xstrfmt.

  • The internal stripspace() function has been moved to where it
    logically belongs to, i.e. strbuf API, and the command line parser

of "git stripspace" has been updated to use the parse_options API.

  • "git am" used to spawn "git mailinfo" via run_command() API once
    per each patch, but learned to make a direct call to mailinfo()

instead.

  • The implementation of "git mailinfo" was refactored so that a
    mailinfo() function can be directly called from inside a process.
  • With a "debug" helper, debugging of a single "git" invocation in
    our test scripts has become a lot easier.
  • The "configure" script did not test for -lpthread correctly, which
    upset some linkers.
  • Cross completed task off of subtree project's todo list.
  • Test cleanups for the subtree project.
  • Clean up style in an ancient test t9300.
  • Work around some test flakiness with p4d.
  • Fsck did not correctly detect a NUL-truncated header in a tag.
  • Use a safer behavior when we hit errors verifying remote certificates.
  • Speed up filter-branch for cases where we only care about rewriting
    commits, not tree data.
  • The parse-options API has been updated to make "-h" command line
    option work more consistently in all commands.
  • "git svn rebase/mkdirs" got optimized by keeping track of empty
    directories better.
  • Fix some racy client/server tests by treating SIGPIPE the same as a
    normal non-zero exit.
  • The necessary infrastructure to build topics using the free Travis
    CI has been added. Developers forking from this topic (and enabling

Travis) can do their own builds, and we can turn on auto-builds for
git/git (including build-status for pull requests that people
open).

下载:https://github.com/git/git/archive/v2.7.0-rc0.zip

详细改进请看更新日志:https://github.com/git/git/blob/master/Documentation/RelNotes/2.7.0.txt

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。

开源中国 Git 代码托管平台:http://git.oschina.net/

image

文章转载自 开源中国社区[https://www.oschina.net]

相关文章
|
3月前
|
存储 开发工具 git
|
3月前
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
63 0
|
20天前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
70 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
21小时前
|
开发工具 git 开发者
|
21小时前
|
开发工具 git 开发者
提升Git效率:掌握这5个高级命令
【10月更文挑战第17天】
7 0
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。
|
2月前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7
|
2月前
|
存储 Linux 开发工具
Git基础命令,分支,标签的使用【快速入门Git】
本文详细介绍了Git版本控制系统的基础概念和常用命令,包括工作区、暂存区和版本库的区别,文件状态的变化,以及如何进行文件的添加、提交、查看状态、重命名、删除、查看提交历史、远程仓库操作和分支管理,还涉及了Git标签的创建和删除,旨在帮助读者快速入门Git。
Git基础命令,分支,标签的使用【快速入门Git】
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
本文介绍 Git 的核心概念,如仓库、提交、分支与合并,并提供了常用命令,如初始化仓库 (`git init`)、提交更改 (`git commit -m "Commit message"`)、拉取 (`git pull`) 和推送 (`git push`) 等。此外,还分享了高级技巧,如撤销提交 (`git revert <commit>`)、交互式暂存 (`git add -i`) 和使用别名简化命令 (`git config --global alias.ci commit`) 等,帮助开发者提升效率。无论是初学者还是资深开发者,都能从中受益。
|
2月前
|
开发工具 git 开发者
GIT命令的综合总结
Git的学习曲线可能比较陡峭,但熟练掌握这些命令后,你将能够更加高效地管理和协作你的项目。希望这份指南能帮助你成为Git的高效用户。
47 7