1
0

Changed 您 to 你

do not use the honorific version of `you' in chinese.
indeed that was weird...
This commit is contained in:
dotnil
2012-11-29 19:29:33 +08:00
parent 0fd9c64462
commit b7cefc43bf
6 changed files with 141 additions and 141 deletions

View File

@@ -11,11 +11,11 @@ layout: zh_reference
</h2>
<div class="block">
<p>
现在有了一堆分支短期的主题、长期的特性或者其它。怎样追踪他们呢Git 有一组工具,可以帮助弄明白工作是在哪儿完成的,两个分支间的区别是啥,等等。
现在有了一堆分支短期的主题、长期的特性或者其它。怎样追踪他们呢Git 有一组工具,可以帮助弄明白工作是在哪儿完成的,两个分支间的区别是啥,等等。
</p>
<p class="nutshell">
<b>一言以蔽之</b> 执行 <code>git log</code> 找到的项目历史中的特定提交 —— 按作者、日期、内容或者历史记录。执行 <code>git diff</code> 比较历史记录中的两个不同的点 —— 通常是为了看看两个分支有啥区别,或者从某个版本到另一个版本,的软件都有啥变化。
<b>一言以蔽之</b> 执行 <code>git log</code> 找到的项目历史中的特定提交 —— 按作者、日期、内容或者历史记录。执行 <code>git diff</code> 比较历史记录中的两个不同的点 —— 通常是为了看看两个分支有啥区别,或者从某个版本到另一个版本,的软件都有啥变化。
</p>
</div>
</div>
@@ -27,12 +27,12 @@ layout: zh_reference
<a target="new" href="http://progit.org/book/ch2-3.html">书k</a>
</span>
<a name="log">git log</a>
<span class="desc">过滤的提交历史记录</span>
<span class="desc">过滤的提交历史记录</span>
</h2>
<div class="block">
<p>
通过查看分支中另一分支看不到的提交记录,我们已经看到如何用 <code>git log</code> 来比较分支。(如果不记得了,它看起来是这样的:<code>git log branchA ^branchB</code>)。而且,也可以用 <code>git log</code> 去寻找特定的提交。在此,我们会看到一些更广为使用的 <code>git log</code> 选项,不过哪有很多。完整的清单可以看看官方文档。
通过查看分支中另一分支看不到的提交记录,我们已经看到如何用 <code>git log</code> 来比较分支。(如果不记得了,它看起来是这样的:<code>git log branchA ^branchB</code>)。而且,也可以用 <code>git log</code> 去寻找特定的提交。在此,我们会看到一些更广为使用的 <code>git log</code> 选项,不过哪有很多。完整的清单可以看看官方文档。
</p>
<h4>
@@ -41,7 +41,7 @@ layout: zh_reference
</h4>
<p>
要过滤的提交历史,只寻找某个特定作者的提交,可以使用 <code>--author</code> 选项。例如,比方说我们要找 Git 源码中 Linus 提交的部分。我们可以执行类似 <code>git log --author=Linus</code> 的命令。这个查找是大小写敏感的,并且也会检索电子邮箱地址。我在此例中使用 <code>-[number]</code> 选项,以限制结果为最近 [number] 次的提交。
要过滤的提交历史,只寻找某个特定作者的提交,可以使用 <code>--author</code> 选项。例如,比方说我们要找 Git 源码中 Linus 提交的部分。我们可以执行类似 <code>git log --author=Linus</code> 的命令。这个查找是大小写敏感的,并且也会检索电子邮箱地址。我在此例中使用 <code>-[number]</code> 选项,以限制结果为最近 [number] 次的提交。
</p>
<pre>
@@ -59,7 +59,7 @@ b532581 make "git unpack-file" a built-in
</h4>
<p>
如果要指定一个感兴趣的日期范围以过滤的提交,可以执行几个选项 —— 我用 <code>--since</code><code>--before</code>,但是也可以用 <code>--until</code><code>--after</code>。例如,如果我要看 Git 项目中三周前且在四月十八日之后的所有提交,我可以执行这个(我还用了 <code>--no-merges</code> 选项以隐藏合并提交):
如果要指定一个感兴趣的日期范围以过滤的提交,可以执行几个选项 —— 我用 <code>--since</code><code>--before</code>,但是也可以用 <code>--until</code><code>--after</code>。例如,如果我要看 Git 项目中三周前且在四月十八日之后的所有提交,我可以执行这个(我还用了 <code>--no-merges</code> 选项以隐藏合并提交):
</p>
<pre>
@@ -81,7 +81,7 @@ b6c8d2d Documentation/remote-helpers: Add invocation section
</h4>
<p>
或许还想根据提交注释中的某个特定短语查找提交记录。可以用 <code>--grep</code> 选项。比如说我知道有个提交是有关使用 P4EDITOR 环境变量,又想回忆起那个改动是啥样子的 —— 我可以用 <code>--grep</code> 选项找到该提交。
或许还想根据提交注释中的某个特定短语查找提交记录。可以用 <code>--grep</code> 选项。比如说我知道有个提交是有关使用 P4EDITOR 环境变量,又想回忆起那个改动是啥样子的 —— 我可以用 <code>--grep</code> 选项找到该提交。
</p>
<pre>
@@ -101,7 +101,7 @@ Date: Wed Mar 12 19:03:24 2008 -0500
</pre>
<p>
Git 会对所有的 <code>--grep</code><code>--author</code> 参数作逻辑或。如果<code>--grep</code><code>--author</code> 时,想看的是某人写作的并且有某个特殊的注释内容的提交记录,需要加上 <code>--all-match</code> 选项。在这些例子中,我会用上 <code>--format</code> 选项,这样我们就可以看到每个提交的作者是谁了。
Git 会对所有的 <code>--grep</code><code>--author</code> 参数作逻辑或。如果<code>--grep</code><code>--author</code> 时,想看的是某人写作的并且有某个特殊的注释内容的提交记录,需要加上 <code>--all-match</code> 选项。在这些例子中,我会用上 <code>--format</code> 选项,这样我们就可以看到每个提交的作者是谁了。
</p>
<p>
@@ -151,7 +151,7 @@ e96e400 Simon Hausmann git-p4: Fix submit user-interface.
</h4>
<p>
如果写的提交注释都极度糟糕怎么办?或者,如果要找某个函数是何时引入的,某些变量是在哪里开始被使用的?可以告诉 Git 在每个提交之间的差值中查找特定字符串。例如如果我们想要找出哪个提交修改出了类似函数名“userformat_find_requirements”我们可以执行注意在“-S”与要找的东东之间没有“=”):
如果写的提交注释都极度糟糕怎么办?或者,如果要找某个函数是何时引入的,某些变量是在哪里开始被使用的?可以告诉 Git 在每个提交之间的差值中查找特定字符串。例如如果我们想要找出哪个提交修改出了类似函数名“userformat_find_requirements”我们可以执行注意在“-S”与要找的东东之间没有“=”):
</p>
<pre>
@@ -180,7 +180,7 @@ Date: Tue Apr 13 22:31:12 2010 +0200
</h4>
<p>
每个提交都是项目的一个快照。由于每个提交都记录它所基于的快照Git 能够经常对它们求差值,并以补丁形式向展示。这意味着,对任意提交,都可以获取该提交给项目引入补丁。可以用 <code>git show [SHA]</code> 加上某个特定的提交 SHA 获取,或者执行 <code>git log -p</code>,它会告诉 Git 输出每个提交之后的补丁。这是个总结某一分支或者两个提交之间都发生了神马的好途径。
每个提交都是项目的一个快照。由于每个提交都记录它所基于的快照Git 能够经常对它们求差值,并以补丁形式向展示。这意味着,对任意提交,都可以获取该提交给项目引入补丁。可以用 <code>git show [SHA]</code> 加上某个特定的提交 SHA 获取,或者执行 <code>git log -p</code>,它会告诉 Git 输出每个提交之后的补丁。这是个总结某一分支或者两个提交之间都发生了神马的好途径。
</p>
<pre>
@@ -234,7 +234,7 @@ index d053cc8..9103e27 100644
</h4>
<p>
如果 <code>-p</code> 选项对来说太详细了,可以用 <code>--stat</code> 总结这些改动。这是不用 <code>-p</code>,而用 <code>--stat</code> 选项时,同一份日志的输出。
如果 <code>-p</code> 选项对来说太详细了,可以用 <code>--stat</code> 总结这些改动。这是不用 <code>-p</code>,而用 <code>--stat</code> 选项时,同一份日志的输出。
</p>
<pre>
@@ -259,7 +259,7 @@ Date: Fri Jun 4 12:58:53 2010 +0200
</pre>
<p>
同样的基本信息,但更紧凑 —— 它仍然让看到相对改动,和改动了哪些文件。
同样的基本信息,但更紧凑 —— 它仍然让看到相对改动,和改动了哪些文件。
</p>
</div>
@@ -278,11 +278,11 @@ Date: Fri Jun 4 12:58:53 2010 +0200
<div class="block">
<p>
最后,要查看两个提交快照的绝对改动,可以用 <code>git diff</code> 命令。这在两个主要情况中广为使用 —— 查看两个分支彼此之间的差值,和查看自发布或者某个旧历史点之后都有啥变了。让我们看看这俩情况。
最后,要查看两个提交快照的绝对改动,可以用 <code>git diff</code> 命令。这在两个主要情况中广为使用 —— 查看两个分支彼此之间的差值,和查看自发布或者某个旧历史点之后都有啥变了。让我们看看这俩情况。
</p>
<p>
仅需执行 <code>git diff [version]</code>(或者给该发布打的任何标签)就可以查看自最近发布之后的改动。例如,如果我们想要看看自 v0.9 发布之后我们的项目改变了啥,我们可以执行 <code>git diff v0.9</code>
仅需执行 <code>git diff [version]</code>(或者给该发布打的任何标签)就可以查看自最近发布之后的改动。例如,如果我们想要看看自 v0.9 发布之后我们的项目改变了啥,我们可以执行 <code>git diff v0.9</code>
</p>
<pre>
@@ -314,7 +314,7 @@ index bb86f00..192151c 100644
</pre>
<p>
正如 <code>git log</code>可以给它加上 <code>--stat</code> 参数。
正如 <code>git log</code>可以给它加上 <code>--stat</code> 参数。
</p>
<pre>
@@ -325,7 +325,7 @@ index bb86f00..192151c 100644
</pre>
<p>
要比较两个不同的分支,可以执行类似 <code>git diff branchA branchB</code> 的命令。不过它的问题在于它会完完全全按说的作 —— 它会直接给个补丁文件,该补丁能够将甲分支的最新快照变成乙分支的最新快照的样子。这意味着如果两个分支已经产生分歧 —— 奔往两个不同方向了 —— 它会移除甲分支中引入的所有工作,然后累加乙分支中的所有工作。这大概不是要的吧 —— 想要不在甲分支中的乙分支的改动。所以真的需要的是两个分支叉开去时,和最新的乙分支的差别。所以,如果我们的历史记录看起来像这样:
要比较两个不同的分支,可以执行类似 <code>git diff branchA branchB</code> 的命令。不过它的问题在于它会完完全全按说的作 —— 它会直接给个补丁文件,该补丁能够将甲分支的最新快照变成乙分支的最新快照的样子。这意味着如果两个分支已经产生分歧 —— 奔往两个不同方向了 —— 它会移除甲分支中引入的所有工作,然后累加乙分支中的所有工作。这大概不是要的吧 —— 想要不在甲分支中的乙分支的改动。所以真的需要的是两个分支叉开去时,和最新的乙分支的差别。所以,如果我们的历史记录看起来像这样:
</p>
<pre>
@@ -351,7 +351,7 @@ index bb86f00..192151c 100644
</pre>
<p>
可以看到,它加上了 erlang 和 haskell 文件,这确实是我们在该分支中做的,但是它同时恢复了我们在主分支中改动的 ruby 文件。我们真心想要的只是“erlang”分支中的改动添加两个文件。我们可以通过求两个分支分歧时的共同提交与该分支的差值得到想要的结果
可以看到,它加上了 erlang 和 haskell 文件,这确实是我们在该分支中做的,但是它同时恢复了我们在主分支中改动的 ruby 文件。我们真心想要的只是“erlang”分支中的改动添加两个文件。我们可以通过求两个分支分歧时的共同提交与该分支的差值得到想要的结果
</p>
<pre>
@@ -362,7 +362,7 @@ index bb86f00..192151c 100644
</pre>
<p>
这才是我们在找的但是我们可不想要每次都要找出两个分支分歧时的那次提交。幸运的是Git 为此提供了一个快捷方式。如果执行 <code>git diff master...erlang</code>在分支名之间有三个半角的点Git 就会自动找出两个分支的共同提交(也被成为合并基础),并求差值。
这才是我们在找的但是我们可不想要每次都要找出两个分支分歧时的那次提交。幸运的是Git 为此提供了一个快捷方式。如果执行 <code>git diff master...erlang</code>在分支名之间有三个半角的点Git 就会自动找出两个分支的共同提交(也被成为合并基础),并求差值。
</p>
<pre>
@@ -378,11 +378,11 @@ index bb86f00..192151c 100644
</pre>
<p>
几乎每一次要对比两个分支的时候,都会想用三个点的语法,因为它通常会给您您想要的。
几乎每一次要对比两个分支的时候,都会想用三个点的语法,因为它通常会给你你想要的。
</p>
<p>
顺带提一句,还可以让 Git 手工计算两次提交的合并基础(第一个共同的祖提交),即 <code>git merge-base</code> 命令:
顺带提一句,还可以让 Git 手工计算两次提交的合并基础(第一个共同的祖提交),即 <code>git merge-base</code> 命令:
</p>
<pre>
@@ -391,7 +391,7 @@ index bb86f00..192151c 100644
</pre>
<p>
所以执行下面这个也跟 <code>git diff master...erlang</code> 一样:
所以执行下面这个也跟 <code>git diff master...erlang</code> 一样:
</p>
<pre>
@@ -411,5 +411,5 @@ index bb86f00..192151c 100644
</div>
</div>
<p>就是这样了! 请阅读
<p>就是这样了! 请阅读
<a href="http://progit.org">《Pro Git》</a> 以获得更多信息。</p>