Skip to content

Commit 9ee899e

Browse files
committed
Merge pull request progit#412 from harupong/ja-chapter6
[ja] Update chapter6
2 parents 118d206 + a9da851 commit 9ee899e

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

ja/06-git-tools/01-chapter6.markdown

+15-15
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ SHA-1 の衝突を見るにはどうしたらいいのか、ひとつの例を
104104
$ git log -g master
105105
commit 734713bc047d87bf7eac9674765ae793478c50d3
106106
Reflog: master@{0} (Scott Chacon <[email protected]>)
107-
Reflog message: commit: fixed refs handling, added gc auto, updated
107+
Reflog message: commit: fixed refs handling, added gc auto, updated
108108
Author: Scott Chacon <[email protected]>
109109
Date: Fri Jan 2 18:32:33 2009 -0800
110110

@@ -127,10 +127,10 @@ SHA-1 の衝突を見るにはどうしたらいいのか、ひとつの例を
127127
$ git log --pretty=format:'%h %s' --graph
128128
* 734713b fixed refs handling, added gc auto, updated tests
129129
* d921970 Merge commit 'phedders/rdocs'
130-
|\
130+
|\
131131
| * 35cfb2b Some rdoc changes
132132
* | 1c002dd added some blame and merge stuff
133-
|/
133+
|/
134134
* 1c36188 ignore *.gem
135135
* 9b29157 add open3_detach to gemspec file list
136136

@@ -188,7 +188,7 @@ SHA-1 の衝突を見るにはどうしたらいいのか、ひとつの例を
188188

189189
範囲指定の方法としてもっとも一般的なのが、ダブルドット構文です。これは、ひとつのコミットからはたどれるけれどもうひとつのコミットからはたどれないというコミットの範囲を Git に調べさせるものです。図 6-1 のようなコミット履歴を例に考えましょう。
190190

191-
Insert 18333fig0601.png
191+
Insert 18333fig0601.png
192192
図 6-1. 範囲指定選択用の歴史の例
193193

194194
experiment ブランチの内容のうち、まだ master ブランチにマージされていないものを調べることになりました。対象となるコミットのログを見るには、Git に `master..experiment` と指示します。これは "experiment からはたどれるけれど、master からはたどれないすべてのコミット" という意味です。説明を短く簡潔にするため、実際のログの出力のかわりに上の図の中でコミットオブジェクトをあらわす文字を使うことにします。
@@ -259,7 +259,7 @@ Git には、コマンドラインでの作業をしやすくするためのス
259259
*** Commands ***
260260
1: status 2: update 3: revert 4: add untracked
261261
5: patch 6: diff 7: quit 8: help
262-
What now>
262+
What now>
263263

264264
このコマンドは、ステージングエリアに関する情報を違った観点で表示します。`git status` で得られる情報と基本的には同じですが、より簡潔で有益なものとなっています。ステージした変更が左側、そしてステージしていない変更が右側に表示されます。
265265

@@ -287,7 +287,7 @@ TODO と index.html をステージするには、その番号を入力します
287287

288288
ファイル名の横に `*` がついていれば、そのファイルがステージ対象として選択されたことを意味します。`Update>>` プロンプトで何も入力せずに Enter を押すと、選択されたすべてのファイルを Git がステージします。
289289

290-
Update>>
290+
Update>>
291291
updated 2 paths
292292

293293
*** Commands ***
@@ -369,7 +369,7 @@ Git では、ファイルの特定の箇所だけをステージして他の部
369369
end
370370

371371
def blame(path)
372-
Stage this hunk [y,n,a,d,/,j,J,g,e,?]?
372+
Stage this hunk [y,n,a,d,/,j,J,g,e,?]?
373373

374374
ここでは多くの選択肢があります。何ができるのかを見るには `?` を入力しましょう。
375375

@@ -664,7 +664,7 @@ Git を使って作業をしていると、何らかの理由でコミットの
664664
edit 310154e updated README formatting and added blame
665665
pick a5f4a0d added cat-file
666666

667-
そして、スクリプトからコマンドラインに戻ってきたらそのコミットをリセットし、リセットされた変更を複数のコミットに分割します。変更を保存してエディタを終了すると、Git はリストの最初のコミットの親まで処理を巻き戻します。そして最初のコミット (`f7f3f6d`) と二番目のコミット (`310154e`) を適用してからコンソールに戻ります。コミットをリセットするには `git reset HEAD^` を実行します。これはコミット自体を取り消し、変更されたファイルはステージしていない状態にします。ここで、必要なファイルをステージしてコミットしていきます。すべての処理が終われば、`git rebase --continue` を実行します。
667+
変更を保存してエディタを終了すると、Git はリストの最初のコミットの親まで処理を巻き戻します。そして最初のコミット (`f7f3f6d`) と二番目のコミット (`310154e`) を適用してからコンソールに戻ります。コミットをリセットするには `git reset HEAD^` を実行します。これはコミット自体を取り消し、変更されたファイルはステージしていない状態にします。ここまでくれば、取り消された変更点から必要なものだけを選択してコミットすることができます。一連のコミットが終わったら、以下のように`git rebase --continue` を実行しましょう。
668668

669669
$ git reset HEAD^
670670
$ git add README
@@ -695,7 +695,7 @@ Git はスクリプトの最後のコミット (`a5f4a0d`) を適用し、歴史
695695
Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21)
696696
Ref 'refs/heads/master' was rewritten
697697

698-
`--tree-filter` オプションは、プロジェクトの各チェックアウトに対して指定したコマンドを実行し、結果を再コミットします。この場合は、すべてのスナップショットから passwords.txt というファイルを削除します。間違えてコミットしてしまったエディタのバックアップファイルを削除するには、`git filter-branch --tree-filter 'rm -f *~' HEAD` のように実行します。
698+
`--tree-filter` オプションは、プロジェクトの各チェックアウトに対して指定したコマンドを実行し、結果を再コミットします。この場合は、すべてのスナップショットから passwords.txt というファイルを削除します。間違えてコミットしてしまったエディタのバックアップファイルを削除するには、`git filter-branch --tree-filter "rm -f *~" HEAD` のように実行します。
699699

700700
Git がツリーを書き換えてコミットし、ブランチのポインタを末尾に移動させる様子がごらんいただけるでしょう。この作業は、まずはテスト用ブランチで実行してから結果をよく吟味し、それから master ブランチに適用することをおすすめします。`filter-branch` をすべてのブランチで実行するには、このコマンドに `--all` を渡します。
701701

@@ -733,15 +733,15 @@ Git には、プロジェクトで発生した問題をデバッグするため
733733

734734
コードのバグを追跡しているときに「それが、いつどんな理由で追加されたのか」が知りたくなることがあるでしょう。そんな場合にもっとも便利なのが、ファイルの注記です。これは、ファイルの各行について、その行を最後に更新したのがどのコミットかを表示します。もしコードの中の特定のメソッドにバグがあることを見つけたら、そのファイルを `git blame` しましょう。そうすれば、そのメソッドの各行がいつ誰によって更新されたのかがわかります。この例では、`-L` オプションを使って 12 行目から 22 行目までに出力を限定しています。
735735

736-
$ git blame -L 12,22 simplegit.rb
736+
$ git blame -L 12,22 simplegit.rb
737737
^4832fe2 (Scott Chacon 2008-03-15 10:31:28 -0700 12) def show(tree = 'master')
738738
^4832fe2 (Scott Chacon 2008-03-15 10:31:28 -0700 13) command("git show #{tree}")
739739
^4832fe2 (Scott Chacon 2008-03-15 10:31:28 -0700 14) end
740740
^4832fe2 (Scott Chacon 2008-03-15 10:31:28 -0700 15)
741741
9f6560e4 (Scott Chacon 2008-03-17 21:52:20 -0700 16) def log(tree = 'master')
742742
79eaf55d (Scott Chacon 2008-04-06 10:15:08 -0700 17) command("git log #{tree}")
743743
9f6560e4 (Scott Chacon 2008-03-17 21:52:20 -0700 18) end
744-
9f6560e4 (Scott Chacon 2008-03-17 21:52:20 -0700 19)
744+
9f6560e4 (Scott Chacon 2008-03-17 21:52:20 -0700 19)
745745
42cf2861 (Magnus Chacon 2008-04-13 10:45:01 -0700 20) def blame(path)
746746
42cf2861 (Magnus Chacon 2008-04-13 10:45:01 -0700 21) command("git blame #{path}")
747747
42cf2861 (Magnus Chacon 2008-04-13 10:45:01 -0700 22) end
@@ -750,8 +750,8 @@ Git には、プロジェクトで発生した問題をデバッグするため
750750

751751
Git のすばらしいところのひとつに、ファイルのリネームを明示的には追跡しないということがあります。スナップショットだけを記録し、もしリネームされていたのなら暗黙のうちにそれを検出します。この機能の興味深いところは、ファイルのリネームだけでなくコードの移動についても検出できるということです。`git blame``-C` を渡すと Git はそのファイルを解析し、別のところからコピーされたコード片がないかどうかを探します。最近私は `GITServerHandler.m` というファイルをリファクタリングで複数のファイルに分割しました。そのうちのひとつが `GITPackUpload.m` です。ここで `-C` オプションをつけて `GITPackUpload.m` を調べると、コードのどの部分をどのファイルからコピーしたのかを知ることができます。
752752

753-
$ git blame -C -L 141,153 GITPackUpload.m
754-
f344f58d GITServerHandler.m (Scott 2009-01-04 141)
753+
$ git blame -C -L 141,153 GITPackUpload.m
754+
f344f58d GITServerHandler.m (Scott 2009-01-04 141)
755755
f344f58d GITServerHandler.m (Scott 2009-01-04 142) - (void) gatherObjectShasFromC
756756
f344f58d GITServerHandler.m (Scott 2009-01-04 143) {
757757
70befddd GITServerHandler.m (Scott 2009-03-22 144) //NSLog(@"GATHER COMMI
@@ -848,7 +848,7 @@ Rack ライブラリ (Ruby のウェブサーバーゲートウェイインタ
848848

849849
まず気づくのが `.gitmodules` ファイルです。この設定ファイルには、プロジェクトの URL とそれを取り込んだローカルサブディレクトリの対応が格納されています。
850850

851-
$ cat .gitmodules
851+
$ cat .gitmodules
852852
[submodule "rack"]
853853
path = rack
854854
url = git://github.com/chneukirchen/rack.git
@@ -988,7 +988,7 @@ rack エントリのモードが 160000 となったことに注目しましょ
988988

989989
時には、大規模なプロジェクトのサブディレクトリから今自分がいるチームに応じた組み合わせを取得したくなることもあるでしょう。これは、CVS や Subversion から移行した場合によくあることでしょう。モジュールを定義したりサブディレクトリのコレクションを定義していたりといったかつてのワークフローをそのまま維持したいというような状況です。
990990

991-
Git でこれと同じことをするためのよい方法は、それぞれのサブフォルダを別々の Git リポジトリにして、それらのサブモジュールとして含む親プロジェクトとなる Git リポジトリを作ることです。この方式の利点は、親プロジェクトのタグやブランチを活用してプロジェクト間の関係をより細やかに定義できることです。
991+
Git でこれと同じことをするためのよい方法は、それぞれのサブディレクトリを別々の Git リポジトリにして、それらのサブモジュールとして含む親プロジェクトとなる Git リポジトリを作ることです。この方式の利点は、親プロジェクトのタグやブランチを活用してプロジェクト間の関係をより細やかに定義できることです。
992992

993993
### サブモジュールでの問題 ###
994994

0 commit comments

Comments
 (0)