Skip to content

Commit

Permalink
[zh] Synchronize with English version.
Browse files Browse the repository at this point in the history
  • Loading branch information
xfq committed Jun 1, 2014
1 parent a786edd commit fdee83e
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 9 deletions.
4 changes: 2 additions & 2 deletions zh/01-introduction/01-chapter1.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -188,11 +188,11 @@ Insert 18333fig0107.png

一般在新的系统上,我们都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配置。

Git 提供了一个叫做 git config 的工具(译注:实际是 `git-config` 命令,只不过可以通过 `git` 加一个名字来呼叫此命令。),专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:
Git 提供了一个叫做 `git config` 的工具(译注:实际是 `git-config` 命令,只不过可以通过 `git` 加一个名字来呼叫此命令。),专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

* `/etc/gitconfig` 文件:系统中对所有用户都普遍适用的配置。若使用 `git config` 时用 ` --system` 选项,读写的就是这个文件。
* `~/.gitconfig` 文件:用户目录下的配置文件只适用于该用户。若使用 `git config` 时用 ` --global` 选项,读写的就是这个文件。
* 当前项目的 git 目录中的配置文件(也就是工作目录中的 `.git/config` 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 `.git/config` 里的配置会覆盖 `/etc/gitconfig` 中的同名变量。
* 当前项目的 Git 目录中的配置文件(也就是工作目录中的 `.git/config` 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 `.git/config` 里的配置会覆盖 `/etc/gitconfig` 中的同名变量。

在 Windows 系统上,Git 会找寻用户主目录下的 `.gitconfig` 文件。主目录即 `$HOME` 变量指定的目录,一般都是 `C:\Documents and Settings\$USER`。此外,Git 还会尝试找寻 `/etc/gitconfig` 文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位。

Expand Down
2 changes: 1 addition & 1 deletion zh/03-git-branching/01-chapter3.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ Insert 18333fig0323.png
可以运行 `git fetch origin` 来同步远程服务器上的数据到本地。该命令首先找到 `origin` 是哪个服务器(本例为 `git.ourcompany.com`),从上面获取你尚未拥有的数据,更新你本地的数据库,然后把 `origin/master` 的指针移到它最新的位置上(见图 3-24)。

Insert 18333fig0324.png
图 3-24. git fetch 命令会更新 remote 索引。
图 3-24. `git fetch` 命令会更新 remote 索引。

为了演示拥有多个远程分支(在不同的远程服务器上)的项目是如何工作的,我们假设你还有另一个仅供你的敏捷开发小组使用的内部服务器 `git.team1.ourcompany.com`。可以用第二章中提到的 `git remote add` 命令把它加为当前项目的远程分支之一。我们把它命名为 `teamone`,以便代替完整的 Git URL 以方便使用(见图 3-25)。

Expand Down
2 changes: 1 addition & 1 deletion zh/07-customizing-git/01-chapter7.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ Git属性在导出项目归档时也能发挥作用。

test/ export-ignore

现在,当运行git archive来创建项目的压缩包时,那个目录不会在归档中出现。
现在,当运行 `git archive` 来创建项目的压缩包时,那个目录不会在归档中出现。

#### export-subst ####

Expand Down
8 changes: 4 additions & 4 deletions zh/08-git-and-other-scms/01-chapter8.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ Git 中所有 Subversion 桥接命令的基础是 `git svn` 。所有的命令

### Git 分支问题 ###

习惯了 Git 的工作流程以后,你可能会创建一些特性分支,完成相关的开发工作,然后合并他们。如果要用 git svn 向 Subversion 推送内容,那么最好是每次用衍合来并入一个单一分支,而不是直接合并。使用衍合的原因是 Subversion 只有一个线性的历史而不像 Git 那样处理合并,所以 Git svn 在把快照转换为 Subversion 的 commit 时只能包含第一个祖先。
习惯了 Git 的工作流程以后,你可能会创建一些特性分支,完成相关的开发工作,然后合并他们。如果要用 `git svn` 向 Subversion 推送内容,那么最好是每次用衍合来并入一个单一分支,而不是直接合并。使用衍合的原因是 Subversion 只有一个线性的历史而不像 Git 那样处理合并,所以 `git svn` 在把快照转换为 Subversion 的 commit 时只能包含第一个祖先。

假设分支历史如下:创建一个 `experiment` 分支,进行两次提交,然后合并到 `master` 。在 `dcommit` 的时候会得到如下输出:

Expand Down Expand Up @@ -231,7 +231,7 @@ Git 中所有 Subversion 桥接命令的基础是 `git svn` 。所有的命令

### Subversion 分支 ###

Subversion 的分支和 Git 中的不尽相同;避免过多的使用可能是最好方案。不过,用 git svn 创建和提交不同的 Subversion 分支仍是可行的。
Subversion 的分支和 Git 中的不尽相同;避免过多的使用可能是最好方案。不过,用 `git svn` 创建和提交不同的 Subversion 分支仍是可行的。

#### 创建新的 SVN 分支 ####

Expand Down Expand Up @@ -499,7 +499,7 @@ Git 通过搜寻提交历史中 Subversion 分支的头部来决定 dcommit 的

为了导入到一个 Git 目录,我们首先回顾一下 Git 储存数据的方式。你可能还记得,Git 本质上是一个 commit 对象的链表,每一个对象指向一个内容的快照。而这里需要做的工作就是告诉 `fast-import` 内容快照的位置,什么样的 commit 数据指向它们,以及它们的顺序。我们采取一次处理一个快照的策略,为每一个内容目录建立对应的 commit ,每一个 commit 与之前的建立链接。

正如在第七章 "Git 执行策略一例" 一节中一样,我们将使用 Ruby 来编写这个脚本,因为它是我日常使用的语言而且阅读起来简单一些。你可以用任何其他熟悉的语言来重写这个例子——它仅需要把必要的信息打印到标准输出而已。同时,如果你在使用 Windows,这意味着你要特别留意不要在换行的时候引入回车符(译注:carriage returns,Windows 换行时加入的符号,通常说的 `\r` )—— Git 的 fast-import 对仅使用换行符(LF)而非 Windows 的回车符(CRLF)要求非常严格。
正如在第七章 "Git 执行策略一例" 一节中一样,我们将使用 Ruby 来编写这个脚本,因为它是我日常使用的语言而且阅读起来简单一些。你可以用任何其他熟悉的语言来重写这个例子——它仅需要把必要的信息打印到标准输出而已。同时,如果你在使用 Windows,这意味着你要特别留意不要在换行的时候引入回车符(译注:carriage returns,Windows 换行时加入的符号,通常说的 `\r` )—— `git fast-import` 对仅使用换行符(LF)而非 Windows 的回车符(CRLF)要求非常严格。

首先,进入目标目录并且找到所有子目录,每一个子目录将作为一个快照被导入为一个 commit。我们将依次进入每一个子目录并打印所需的命令来导出它们。脚本的主循环大致是这样:

Expand Down Expand Up @@ -601,7 +601,7 @@ Git 通过搜寻提交历史中 Subversion 分支的头部来决定 dcommit 的

return mark

注意:如果你在用 Windows,一定记得添加一项额外的步骤。前面提过,Windows 使用 CRLF 作为换行字符而 Git fast-import 只接受 LF。为了绕开这个问题来满足 git fast-import,你需要让 ruby 用 LF 取代 CRLF:
注意:如果你在用 Windows,一定记得添加一项额外的步骤。前面提过,Windows 使用 CRLF 作为换行字符而 `git fast-import` 只接受 LF。为了绕开这个问题来满足 `git fast-import`,你需要让 ruby 用 LF 取代 CRLF:

$stdout.binmode

Expand Down
2 changes: 1 addition & 1 deletion zh/09-git-internals/01-chapter9.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
objects/
refs/

该目录下有可能还有其他文件,但这是一个全新的 `git init` 生成的库,所以默认情况下这些就是你能看到的结构。新版本的 Git 不再使用 `branches` 目录,`description` 文件仅供 GitWeb 程序使用,所以不用关心这些内容。`config` 文件包含了项目特有的配置选项,`info` 目录保存了一份不希望在 .gitignore 文件中管理的忽略模式 (ignored patterns) 的全局可执行文件。`hooks` 目录保存了第七章详细介绍了的客户端或服务端钩子脚本。
该目录下有可能还有其他文件,但这是一个全新的 `git init` 生成的库,所以默认情况下这些就是你能看到的结构。新版本的 Git 不再使用 `branches` 目录,`description` 文件仅供 GitWeb 程序使用,所以不用关心这些内容。`config` 文件包含了项目特有的配置选项,`info` 目录保存了一份不希望在 `.gitignore` 文件中管理的忽略模式 (ignored patterns) 的全局可执行文件。`hooks` 目录保存了第七章详细介绍了的客户端或服务端钩子脚本。

另外还有四个重要的文件或目录:`HEAD``index` 文件,`objects``refs` 目录。这些是 Git 的核心部分。`objects` 目录存储所有数据内容,`refs` 目录存储指向数据 (分支) 的提交对象的指针,`HEAD` 文件指向当前分支,`index` 文件保存了暂存区域信息。马上你将详细了解 Git 是如何操纵这些内容的。

Expand Down

0 comments on commit fdee83e

Please sign in to comment.