git 1.7.10發布,分布式版本控制工具

2021-01-11 開源中國

git 1.7.10正式版放出。2012-04-14.上一個版本是2012-01-29的1.7.9

完全改進:Compatibility Notes
----

 * From this release on, the "git merge" command in an interactive
   session will start an editor when it automatically resolves the
   merge for the user to explain the resulting commit, just like the
   "git commit" command does when it wasn't given a commit message.

   If you have a script that runs "git merge" and keeps its standard
   input and output attached to the user's terminal, and if you do not
   want the user to explain the resulting merge commits, you can
   export GIT_MERGE_AUTOEDIT environment variable set to "no", like
   this:

        #!/bin/sh
        GIT_MERGE_AUTOEDIT=no
        export GIT_MERGE_AUTOEDIT

   to disable this behavior (if you want your users to explain their
   merge commits, you do not have to do anything).  Alternatively, you
   can give the "--no-edit" option to individual invocations of the
   "git merge" command if you know everybody who uses your script has
   Git v1.7.8 or newer.

 * The "--binary/-b" options to "git am" have been a no-op for quite a
   while and were deprecated in mid 2008 (v1.6.0).  When you give these
   options to "git am", it will now warn and ask you not to use them.

 * When you do not tell which branches and tags to push to the "git
   push" command in any way, the command used "matching refs" rule to
   update remote branches and tags with branches and tags with the
   same name you locally have.  In future versions of Git, this will
   change to push out only your current branch according to either the
   "upstream" or the "current" rule.  Although "upstream" may be more
   powerful once the user understands Git better, the semantics
   "current" gives is simpler and easier to understand for beginners
   and may be a safer and better default option.  We haven't decided
   yet which one to switch to.


Updates since v1.7.9


UI, Workflows & Features

 * various "gitk" updates.
   - show the path to the top level directory in the window title
   - update preference edit dialog
   - display file list correctly when directories are given on command line
   - make "git-describe" output in the log message into a clickable link
   - avoid matching the UNIX timestamp part when searching all fields
   - give preference to symbolic font names like sans & monospace
   - allow comparing two commits using a mark
   - "gitk" honors log.showroot configuration.

 * Teams for localizing the messages from the Porcelain layer of
   commands are starting to form, thanks to Jiang Xin who volunteered
   to be the localization coordinator.  Translated messages for
   simplified Chinese, Swedish and Portuguese are available.

 * The configuration mechanism learned an "include" facility; an
   assignment to the include.path pseudo-variable causes the named
   file to be included in-place when Git looks up configuration
   variables.

 * A content filter (clean/smudge) used to be just a way to make the
   recorded contents "more useful", and allowed to fail; a filter can
   now optionally be marked as "required".

 * Options whose names begin with "--no-" (e.g. the "--no-verify"
   option of the "git commit" command) can be negated by omitting
   "no-" from its name, e.g. "git commit --verify".

 * "git am" learned to pass "-b" option to underlying "git mailinfo", so
   that a bracketed string other than "PATCH" at the beginning can be kept.

 * "git clone" learned "--single-branch" option to limit cloning to a
   single branch (surprise!); tags that do not point into the history
   of the branch are not fetched.

 * "git clone" learned to detach the HEAD in the resulting repository
   when the user specifies a tag with "--branch" (e.g., "--branch=v1.0").
   Clone also learned to print the usual "detached HEAD" advice in such
   a case, similar to "git checkout v1.0".

 * When showing a patch while ignoring whitespace changes, the context
   lines are taken from the postimage, in order to make it easier to
   view the output.

 * "git diff --stat" learned to adjust the width of the output on
   wider terminals, and give more columns to pathnames as needed.

 * "diff-highlight" filter (in contrib/) was updated to produce more
   aesthetically pleasing output.

 * "fsck" learned "--no-dangling" option to omit dangling object
   information.

 * "git log -G" and "git log -S" learned to pay attention to the "-i"
   option.  With "-i", "log -G" ignores the case when finding patch
   hunks that introduce or remove a string that matches the given
   pattern.  Similarly with "-i", "log -S" ignores the case when
   finding the commit the given block of text appears or disappears
   from the file.

 * "git merge" in an interactive session learned to spawn the editor
   by default to let the user edit the auto-generated merge message,
   to encourage people to explain their merges better. Legacy scripts
   can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior.
   Both "git merge" and "git pull" can be given --no-edit from the
   command line to accept the auto-generated merge message.

 * The advice message given when the user didn't give enough clue on
   what to merge to "git pull" and "git merge" has been updated to
   be more concise and easier to understand.

 * "git push" learned the "--prune" option, similar to "git fetch".

 * The whole directory that houses a top-level superproject managed by
   "git submodule" can be moved to another place.

 * "git symbolic-ref" learned the "--short" option to abbreviate the
   refname it shows unambiguously.

 * "git tag --list" can be given "--points-at <object>" to limit its
   output to those that point at the given object.

 * "gitweb" allows intermediate entries in the directory hierarchy
   that leads to a project to be clicked, which in turn shows the
   list of projects inside that directory.

 * "gitweb" learned to read various pieces of information for the
   repositories lazily, instead of reading everything that could be
   needed (including the ones that are not necessary for a specific
   task).

 * Project search in "gitweb" shows the substring that matched in the
   project name and description highlighted.

 * HTTP transport learned to authenticate with a proxy if needed.

 * A new script "diffall" is added to contrib/; it drives an
   external tool to perform a directory diff of two Git revisions
   in one go, unlike "difftool" that compares one file at a time.

Foreign Interface

 * Improved handling of views, labels and branches in "git-p4" (in contrib).

 * "git-p4" (in contrib) suffered from unnecessary merge conflicts when
   p4 expanded the embedded $RCS$-like keywords; it can be now told to
   unexpand them.

 * Some "git-svn" updates.

 * "vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and
   support incremental imports.

 * "git difftool/mergetool" learned to drive DeltaWalker.

Performance

 * Unnecessary calls to parse_object() "git upload-pack" makes in
   response to "git fetch", have been eliminated, to help performance
   in repositories with excessive number of refs.

Internal Implementation (please report possible regressions)

 * Recursive call chains in "git index-pack" to deal with long delta
   chains have been flattened, to reduce the stack footprint.

 * Use of add_extra_ref() API is now gone, to make it possible to
   cleanly restructure the overall refs API.

 * The command line parser of "git pack-objects" now uses parse-options
   API.

 * The test suite supports the new "test_pause" helper function.

 * Parallel to the test suite, there is a beginning of performance
   benchmarking framework.

 * t/Makefile is adjusted to prevent newer versions of GNU make from
   running tests in seemingly random order.

 * The code to check if a path points at a file beyond a symbolic link
   has been restructured to be thread-safe.

 * When pruning directories that has become empty during "git prune"
   and "git prune-packed", call closedir() that iterates over a
   directory before rmdir() it.

Also contains minor documentation updates and code clean-ups.


Fixes since v1.7.9
---

Unless otherwise noted, all the fixes since v1.7.9 in the maintenance
releases are contained in this release (see release notes to them for
details).

 * Build with NO_PERL_MAKEMAKER was broken and Git::I18N did not work
   with versions of Perl older than 5.8.3.
   (merge 5eb660e ab/perl-i18n later to maint).

 * "git tag -s" honored "gpg.program" configuration variable since
   1.7.9, but "git tag -v" and "git verify-tag" didn't.
   (merge a2c2506 az/verify-tag-use-gpg-config later to maint).

 * "configure" script learned to take "--with-sane-tool-path" from the
   command line to record SANE_TOOL_PATH (used to avoid broken platform
   tools in /usr/bin) in config.mak.autogen.  This may be useful for
   people on Solaris who have saner tools outside /usr/xpg[46]/bin.

 * zsh port of bash completion script needed another workaround.

 

下載:http://git-core.googlecode.com/files/git-1.7.10.tar.gz

相關焦點

  • 1小時搞懂 Git 版本控制
    在公司 99% 的都是團隊合作開發項目,如果是團隊開發項目,那麼就會遇到以下問題:針對以上諸多問題,原始碼管理工具(版本控制工具)應用而生。使用版本控制工具:常見的版本控制CVS:CVS 是一個 C/S 系統,是一個常用的代碼版本控制軟體,1990 年誕生,10 多年前主流原始碼管理工具。
  • git 1.7.10發布,分布式版本控制工具 - OSCHINA - 中文開源技術...
    git 1.7.10正式版放出。
  • Git 1.9.0 發布,分布式版本控制系統 - OSCHINA - 中文開源技術...
    分布式版本控制系統GIT發布1.9.0正式版。2014-02-15.新的產品系列。
  • Git版本控制常用命令
    Git簡介Git是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。 Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。
  • Git v2.0.1 發布,分布式版本控制 - OSCHINA - 中文開源技術交流社區
    分布式版本控制系統GIT發布2.0.1。2014-06-25。上個版本是2014-05-29日的2.0。
  • Git 入門指引--「就是這麼任性,我只用 Git 控制版本!」
    如果他動點腦子,就不會只在一個文檔中改來改去,而會在文件夾中有:12345678910畢業論文_初稿.doc畢業論文_修改1.doc畢業論文_修改2.doc畢業論文_修改3.doc畢業論文_完整版1.doc畢業論文_完整版2.doc畢業論文_
  • Git 版本控制,看這篇就夠了 (一)
    本文核心點:Git的基本概念安裝Git配置用戶信息創建Git託管的項目工作區與暫存區一、什麼是Git1. git的概念git是世界上目前最先進的分布式版本控制系統,致力於團隊、個人進行項目版本管理git是一個非常強大的工具,但作為一個git使用者來說,不用完全學習Git的知識點與命令,因為有的命令的使用頻率非常的低甚至數年都不會用到,讓我們來由淺入深進行學習。
  • Git 2.10.0 發布,分布式版本控制系統
    Git 2.10.0 發布了,發布說明如下:UI, Workflows & Features * "git
  • Git發布2.30版本
    Git 2.30版本已於北京時間今天凌晨3點發布,是該廣受歡迎的分布式修訂版本控制系統的最新穩定版本更新,Git由Linux內核發明者Linus大神於2005年推出。
  • 版本管理工具Git,你用對了了嗎?這一招絕對好用
    對於開發人員來說,一個團隊一起開發,那麼肯定會涉及到團隊協作開發,這個時候版本管理工具就起了很大的作用,今天我們就來說說超強版本管理工具git應該怎麼用才最好,怎麼用能最大程度保證master分支代碼的乾淨。
  • Git 前時代:使用 CVS 進行版本控制 | Linux 中國
    GitHub 網站發布於 2008 年。如果你的軟體工程師職業生涯跟我一樣,也是晚於此時間的話,Git 可能是你用過的唯一版本控制軟體。雖然其陡峭的學習曲線和不直觀地用戶界面時常會遭人抱怨,但不可否認的是,Git 已經成為學習版本控制的每個人的選擇。
  • 動畫:掃盲 Git 版本控制
    版本控制就是來解決以上這兩種情況的,你改動了哪些地方,都會被版本控制系統所記錄,對於以上第一種情況,我寫的新功能老闆不要了,我可以通過版本控制回退到未修改之前的狀態,對於上邊團隊合作,可以通過版本控制直接合併,無需手動一點點的複製粘貼。說起 Git 的崛起特別有意思,最早的版本控制是出於 BitKeeper 公司的。
  • 一起學習分布式管理工具git
    1.工作原理流程Workspace:工作區,就是你在電腦裡能看到的目錄Index / Stage:暫存區Repository:倉庫區(或本地倉庫)Remote:遠程倉庫git工作流程下面這個圖展示了工作區、版本庫中的暫存區和版本庫之間的關係:
  • 分布式常用工具組件 distributed-tool V1.3 發布
    主要更新說明如下:重構底層實現,使用戶使用更加的方便新增分布式鎖(使用Lua實現)新增分布式信號量(使用Lua實現)項目介紹這是一個分布式常用工具組件。其中包括但不限於:分布式List、分布式Set、分布式Long、分布式信號量、分布式緩存、分布式鎖、分布式序列號生成器、分布式訂閱發布模式等常用工具類目前微服務開發的系統很多,這個就涉及到分布式集群問題。
  • 我痛恨 Git 的 10 個理由
    Git 是一個原始碼版本控制系統,正在迅速成為開源項目的標準。
  • 10年經驗17張圖帶你進入gitflow企業項目代碼版本管理的最佳實踐
    閱讀本文需要有一定git基礎,基礎知識則不在本文展開,善用網上衝浪工具便可學習到許多Git的基礎知識。實際上,本文介紹的並不是純粹的gitflow,而是結合實際生產對gitflow的改造與最佳實踐。git unstash//手工解決衝突(推薦直接使用idea)//提交修改git commit -m'1、解決衝突合併版本'使用ide自帶的衝突解決工具則如下圖
  • Git 2.29 讓 Git 成功「牽手」Gerrit
    GitHub 及其模仿者們成為行業主流,託管著大多數開源項目和商業項目的原始碼,而Gerrit 也有一眾「粉絲」,像大名鼎鼎的安卓(Android)、OpenStack、Golang等。雖然 GitHub 和 Gerrit 都是Git 倉庫的託管和研發協同平臺,但是二者背後的技術大相逕庭。
  • git 版本控制初學者指南
    雷鋒網 AI 科技評論按,如果你還不熟悉版本控制你是否曾經將你的代碼搞得一團糟,甚至覺得從頭開始會更容易?有了版本控制,你可以返回到之前的某一個版本,而不需要在凌晨 2 點從頭再來。備忘清單使用 git bash 或終端導航到實際的項目文件夾。這將在你的項目中創建一個 .git 存儲庫。存儲庫或「repo」是你隨著時間推移對項目所做的所有更改的集合。這是你在新項目要做的第一件事。設置每次提交時使用的信息,這只需要在第一次安裝 Git 時設置一次就好。
  • Git 看這一篇就夠了
    沒錯,這就是本地版本控制系統。很明顯,好處是簡單,但是只能一個人在這改,無法和他人完成合作。那麼以下兩種主流的版本控制系統應運而生。1.這種版本控制系統有一個單一的集中管理的伺服器,保存所有文件的最新版本,大家可以通過連接到這臺伺服器上來獲取或者提交文件。這種模式相對本地版本控制系統是有所改進的,但是缺點也很明顯,如果伺服器宕機,那麼輕則耽誤工作、重則數據丟失。於是分布式版本控制系統應運而生。2. 分
  • Git 2.4.3 發布 - OSCHINA - 中文開源技術交流社區
    Git 2.4.3 發布,此版本更新內容包括:* Error messages from "git branch"