Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

[zh] Corrections of Chapter 2 #379

Merged
merged 1 commit into from

2 participants

@iissnan

No description provided.

@iissnan iissnan commented on the diff
zh/02-git-basics/01-chapter2.markdown
((6 lines not shown))
$ git status
# On branch master
nothing to commit (working directory clean)
-这说明你现在的工作目录相当干净。换句话说,当前没有任何跟踪着的文件,也没有任何文件在上次提交后更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪的新文件,否则 Git 会在这里列出来。最后,该命令还显示了当前所在的分支是 master,这是默认的分支名称,实际是可以修改的,现在先不用考虑。下一章我们就会详细讨论分支和引用。
@iissnan
iissnan added a note

原文是:in other words, no tracked files are modified.
原翻译:换句话说,当前没有任何跟踪着的文件,也没有任何文件在上次提交后更改过。
纠正为:换句话说,所有已跟踪文件在上次提交后都未被更改过。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@iissnan iissnan commented on the diff
zh/02-git-basics/01-chapter2.markdown
@@ -70,7 +70,7 @@ Insert 18333fig0201.png
# README
nothing added to commit but untracked files present (use "git add" to track)
-就是在“Untracked files”这行下面。Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”,因而不用担心把临时文件什么的也归入版本管理。不过现在的例子中,我们确实想要跟踪管理 README 这个文件。
@iissnan
iissnan added a note

原文是:You can see that your new README file is untracked, because it’s under the “Untracked files” heading in your status output. Untracked basically means that Git sees a file you didn’t have in the previous snapshot (commit);
原翻译:就是在“Untracked files”这行下面。
纠正为:在状态报告中可以看到新建的README文件出现在“Untracked files”下面。未跟踪的文件意味着Git在之前的快照(提交)中没有这些文件;

原翻译太过于简略。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@jnavila
Collaborator

@iissnan Why did you comment your own pull request? Is it ready for merge or are you waiting for some review?

@iissnan

@jnavila I am not very sure if there was someone who would review the changes. If there was, then the comment is for him and the comments show why the changes were made clearly. :-)

@iissnan

@jnavila This pull request is ready for merge.

@jnavila jnavila merged commit 1dff88c into from
@jnavila
Collaborator

Merged. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Mar 1, 2013
  1. @iissnan

    [zh] Corrections of Chapter 2

    iissnan authored
This page is out of date. Refresh to see the latest.
Showing with 19 additions and 19 deletions.
  1. +19 −19 zh/02-git-basics/01-chapter2.markdown
View
38 zh/02-git-basics/01-chapter2.markdown
@@ -14,7 +14,7 @@
初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。(在第九章我们会详细说明刚才创建的 `.git` 目录中究竟有哪些文件,以及都起些什么作用。)
-如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:
+如果当前目录下有几个文件想要纳入版本控制,需要先用 `git add` 命令告诉 Git 开始对这些文件进行跟踪,然后提交:
$ git add *.c
$ git add README
@@ -24,17 +24,17 @@
### 从现有仓库克隆 ###
-如果想对某个开源项目出一份力,可以先把该项目的 Git 仓库复制一份出来,这就需要用到 git clone 命令。如果你熟悉其他的 VCS 比如 Subversion,你可能已经注意到这里使用的是 clone 而不是 checkout。这是个非常重要的差别,Git 收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,即便服务器的磁盘发生故障,用任何一个克隆出来的客户端都可以重建服务器上的仓库,回到当初克隆时的状态(虽然可能会丢失某些服务器端的挂钩设置,但所有版本的数据仍旧还在,有关细节请参考第四章)。
+如果想对某个开源项目出一份力,可以先把该项目的 Git 仓库复制一份出来,这就需要用到 `git clone` 命令。如果你熟悉其他的 VCS 比如 Subversion,你可能已经注意到这里使用的是 `clone` 而不是 `checkout`。这是个非常重要的差别,Git 收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,即便服务器的磁盘发生故障,用任何一个克隆出来的客户端都可以重建服务器上的仓库,回到当初克隆时的状态(虽然可能会丢失某些服务器端的挂钩设置,但所有版本的数据仍旧还在,有关细节请参考第四章)。
克隆仓库的命令格式为 `git clone [url]`。比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:
$ git clone git://github.com/schacon/grit.git
-这会在当前目录下创建一个名为grit的目录,其中包含一个 `.git` 的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。如果进入这个新建的 `grit` 目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用。如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
+这会在当前目录下创建一个名为`grit`的目录,其中包含一个 `.git` 的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。如果进入这个新建的 `grit` 目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用。如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/schacon/grit.git mygrit
-唯一的差别就是,现在新建的目录成了 mygrit,其他的都和上边的一样。
+唯一的差别就是,现在新建的目录成了 `mygrit`,其他的都和上边的一样。
Git 支持许多数据传输协议。之前的例子使用的是 `git://` 协议,不过你也可以用 `http(s)://` 或者 `user@server:/path.git` 表示的 SSH 传输协议。我们会在第四章详细介绍所有这些协议在服务器端该如何配置使用,以及各种方式之间的利弊。
@@ -51,15 +51,15 @@ Insert 18333fig0201.png
### 检查当前文件状态 ###
-要确定哪些文件当前处于什么状态,可以用 git status 命令。如果在克隆仓库之后立即执行此命令,会看到类似这样的输出:
+要确定哪些文件当前处于什么状态,可以用 `git status` 命令。如果在克隆仓库之后立即执行此命令,会看到类似这样的输出:
$ git status
# On branch master
nothing to commit (working directory clean)
-这说明你现在的工作目录相当干净。换句话说,当前没有任何跟踪着的文件,也没有任何文件在上次提交后更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪的新文件,否则 Git 会在这里列出来。最后,该命令还显示了当前所在的分支是 master,这是默认的分支名称,实际是可以修改的,现在先不用考虑。下一章我们就会详细讨论分支和引用。
@iissnan
iissnan added a note

原文是:in other words, no tracked files are modified.
原翻译:换句话说,当前没有任何跟踪着的文件,也没有任何文件在上次提交后更改过。
纠正为:换句话说,所有已跟踪文件在上次提交后都未被更改过。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
+这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪的新文件,否则 Git 会在这里列出来。最后,该命令还显示了当前所在的分支是 `master`,这是默认的分支名称,实际是可以修改的,现在先不用考虑。下一章我们就会详细讨论分支和引用。
-现在让我们用 vim 编辑一个新文件 README,保存退出后运行 `git status` 会看到该文件出现在未跟踪文件列表中:
+现在让我们用 vim 创建一个新文件 README,保存退出后运行 `git status` 会看到该文件出现在未跟踪文件列表中:
$ vim README
$ git status
@@ -70,7 +70,7 @@ Insert 18333fig0201.png
# README
nothing added to commit but untracked files present (use "git add" to track)
-就是在“Untracked files”这行下面。Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”,因而不用担心把临时文件什么的也归入版本管理。不过现在的例子中,我们确实想要跟踪管理 README 这个文件。
@iissnan
iissnan added a note

原文是:You can see that your new README file is untracked, because it’s under the “Untracked files” heading in your status output. Untracked basically means that Git sees a file you didn’t have in the previous snapshot (commit);
原翻译:就是在“Untracked files”这行下面。
纠正为:在状态报告中可以看到新建的README文件出现在“Untracked files”下面。未跟踪的文件意味着Git在之前的快照(提交)中没有这些文件;

原翻译太过于简略。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
+在状态报告中可以看到新建的`README`文件出现在“Untracked files”下面。未跟踪的文件意味着Git在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”,因而不用担心把临时文件什么的也归入版本管理。不过现在的例子中,我们确实想要跟踪管理 README 这个文件。
### 跟踪新文件 ###
@@ -107,7 +107,7 @@ Insert 18333fig0201.png
# modified: benchmarks.rb
#
-文件 benchmarks.rb 出现在 “Changes not staged for commit” 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。要暂存这次更新,需要运行 `git add` 命令(这是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等)。现在让我们运行 `git add` 将 benchmarks.rb 放到暂存区,然后再看看 `git status` 的输出:
+文件 `benchmarks.rb` 出现在 “Changes not staged for commit” 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。要暂存这次更新,需要运行 `git add` 命令(这是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等)。现在让我们运行 `git add` 将 benchmarks.rb 放到暂存区,然后再看看 `git status` 的输出:
$ git add benchmarks.rb
$ git status
@@ -119,7 +119,7 @@ Insert 18333fig0201.png
# modified: benchmarks.rb
#
-现在两个文件都已暂存,下次提交时就会一并记录到仓库。假设此时,你想要在 benchmarks.rb 里再加条注释,重新编辑存盘后,准备好提交。不过且慢,再运行 `git status` 看看:
+现在两个文件都已暂存,下次提交时就会一并记录到仓库。假设此时,你想要在 `benchmarks.rb` 里再加条注释,重新编辑存盘后,准备好提交。不过且慢,再运行 `git status` 看看:
$ vim benchmarks.rb
$ git status
@@ -136,7 +136,7 @@ Insert 18333fig0201.png
# modified: benchmarks.rb
#
-怎么回事?benchmarks.rb 文件出现了两次!一次算未暂存,一次算已暂存,这怎么可能呢?好吧,实际上 Git 只不过暂存了你运行 git add 命令时的版本,如果现在提交,那么提交的是添加注释前的版本,而非当前工作目录中的版本。所以,运行了 `git add` 之后又作了修订的文件,需要重新运行 `git add` 把最新版本重新暂存起来:
+怎么回事? `benchmarks.rb` 文件出现了两次!一次算未暂存,一次算已暂存,这怎么可能呢?好吧,实际上 Git 只不过暂存了你运行 `git add` 命令时的版本,如果现在提交,那么提交的是添加注释前的版本,而非当前工作目录中的版本。所以,运行了 `git add` 之后又作了修订的文件,需要重新运行 `git add` 把最新版本重新暂存起来:
$ git add benchmarks.rb
$ git status
@@ -150,24 +150,24 @@ Insert 18333fig0201.png
### 忽略某些文件 ###
-一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。来看一个实际的例子:
+一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 `.gitignore` 的文件,列出要忽略的文件模式。来看一个实际的例子:
$ cat .gitignore
*.[oa]
*~
-第一行告诉 Git 忽略所有以 .o.a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的,我们用不着跟踪它们的版本。第二行告诉 Git 忽略所有以波浪符(`~`)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。此外,你可能还需要忽略 logtmp 或者 pid 目录,以及自动生成的文档等等。要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。
+第一行告诉 Git 忽略所有以 `.o``.a` 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的,我们用不着跟踪它们的版本。第二行告诉 Git 忽略所有以波浪符(`~`)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。此外,你可能还需要忽略 `log`,`tmp` 或者 `pid` 目录,以及自动生成的文档等等。要养成一开始就设置好 `.gitignore` 文件的习惯,以免将来误提交这类无用的文件。
-文件 .gitignore 的格式规范如下:
+文件 `.gitignore` 的格式规范如下:
-* 所有空行或者以注释符号 开头的行都会被 Git 忽略。
+* 所有空行或者以注释符号 `#` 开头的行都会被 Git 忽略。
* 可以使用标准的 glob 模式匹配。
* 匹配模式最后跟反斜杠(`/`)说明要忽略的是目录。
* 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(`!`)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(`*`)匹配零个或多个任意字符;`[abc]` 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(`?`)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 `[0-9]` 表示匹配所有 0 到 9 的数字)。
-我们再看一个 .gitignore 文件的例子:
+我们再看一个 `.gitignore` 文件的例子:
# 此为注释 – 将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
@@ -180,7 +180,7 @@ Insert 18333fig0201.png
实际上 `git status` 的显示比较简单,仅仅是列出了修改过的文件,如果要查看具体修改了什么地方,可以用 `git diff` 命令。稍后我们会详细介绍 `git diff`,不过现在,它已经能回答我们的两个问题了:当前做的哪些更新还没有暂存?有哪些更新已经暂存起来准备好了下次提交? `git diff` 会使用文件补丁的格式显示具体添加和删除的行。
-假如再次修改 README 文件后暂存,然后编辑 benchmarks.rb 文件后先别暂存,运行 `status` 命令,会看到
+假如再次修改 `README` 文件后暂存,然后编辑 `benchmarks.rb` 文件后先别暂存,运行 `status` 命令将会看到
$ git status
# On branch master
@@ -749,7 +749,7 @@ Insert 18333fig0202.png
origin git://github.com/schacon/ticgit.git
pb git://github.com/paulboone/ticgit.git
-现在可以用字串 pb 指代对应的仓库地址了。比如说,要抓取所有 Paul 有的,但本地仓库没有的信息,可以运行 `git fetch pb`
+现在可以用字符串 `pb` 指代对应的仓库地址了。比如说,要抓取所有 Paul 有的,但本地仓库没有的信息,可以运行 `git fetch pb`
$ git fetch pb
remote: Counting objects: 58, done.
@@ -825,7 +825,7 @@ Insert 18333fig0202.png
### 远程仓库的删除和重命名 ###
-在新版 Git 中可以用 `git remote rename` 命令修改某个远程仓库在本地的简短名称,比如想把 `pb` 改成 `paul`,可以这么运行:
+在新版 Git 中可以用 `git remote rename` 命令修改某个远程仓库在本地的简称,比如想把 `pb` 改成 `paul`,可以这么运行:
$ git remote rename pb paul
$ git remote
Something went wrong with that request. Please try again.