Skip to content

Commit 899c723

Browse files
committed
Sync 08-customizing-git policy
1 parent 2b944ab commit 899c723

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

book/08-customizing-git/sections/policy.asc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ puts "(#{$refname}) (#{$oldrev[0,6]}) (#{$newrev[0,6]})"
4646

4747
把 `$newrev` 和 `$oldrev` 变量的值传给一个叫做 `git rev-list` 的 Git 底层命令,你可以获取所有提交的 SHA-1 值列表。
4848
`git rev-list` 基本类似 `git log` 命令,但它默认只输出 SHA-1 值而已,没有其他信息。
49-
所以要获取由一次提交到另一次提交之间的所有 SHA 值,可以像这样运行:
49+
所以要获取由一次提交到另一次提交之间的所有 SHA-1 值,可以像这样运行:
5050

5151
[source,console]
5252
----
@@ -58,7 +58,7 @@ dfa04c9ef3d5197182f13fb5b9b1fb7717d2222a
5858
17716ec0f1ff5c77eff40b7fe912f9f6cfd0e475
5959
----
6060

61-
你可以截取这些输出内容,循环遍历其中每一个 SHA 值,找出与之对应的提交信息,然后用正则表达式来测试该信息包含的内容。
61+
你可以截取这些输出内容,循环遍历其中每一个 SHA-1 值,找出与之对应的提交信息,然后用正则表达式来测试该信息包含的内容。
6262

6363
下一步要实现从每个提交中提取出提交信息。
6464
使用另一个叫做 `git cat-file` 的底层命令来获得原始的提交数据。
@@ -432,11 +432,10 @@ end
432432
[source,ruby]
433433
----
434434
`git rev-list ^#{sha}^@ refs/remotes/#{remote_ref}`
435-
.
436435
----
437436

438437
`SHA^@` 语法会被解析成该提交的所有父提交。
439-
该命令会列出在远程分支最新的提交中可达的,却在所有我们尝试推送的提交的 SHA 值的所有父提交中不可达的提交——也就是快进的提交。
438+
该命令会列出在远程分支最新的提交中可达的,却在所有我们尝试推送的提交的 SHA-1 值的所有父提交中不可达的提交——也就是快进的提交。
440439

441440
这个解决方案主要的问题在于它有可能很慢而且常常没有必要——只要你不用 `-f` 来强制推送,服务器就会自动给出警告并且拒绝接受推送。
442441
然而,这是个不错的练习,而且理论上能帮助你避免一次以后可能不得不回头修补的变基。

0 commit comments

Comments
 (0)