コミット操作の違い ~ Git は コミット前に ステージング 操作が必要 ~
Gitでは、コミットする前にステージングエリア(インデックス)へファイルを登録する(add)必要があります。ステージングエリアとは、コミット対象のファイル(変更内容)を一時的に保存する場所です。
(補足)新規ファイルの場合、SVNでもバージョン管理対象に追加する操作(add)が必要です。
Gitの場合、リモートリポジトリに変更内容を反映させる(他の人と共有する)には、コミット(commit)の後にプッシュ(push)の操作が必要です。
操作内容 | SVN (Subversion) | Git |
---|---|---|
① バージョン管理対象/ステージングエリア に追加 | バージョン管理対象 に追加 (add) ※ 新規ファイルのみ | ステージングエリア に追加 (add) |
② ローカルリポジトリ への反映 | ー | コミット (commit) |
③ 中央/リモートリポジトリ への反映 | コミット (commit) | プッシュ (push) |

コミット単位の違い ~ SVN は ファイル単位、Git は ファイルの行単位も可能 ~
Gitのステージング(ステージングエリアへの登録)は、ファイル単位だけでなく、変更行の塊(ハンク/Hunk)単位でも可能です。つまり、変更したファイルの一部分だけをコミットすることができます。
ハンク (Hunk) 単位の ステージング について、下図 を例に見ていきます。
【例】Git のマニュアルを作成していて 2章 と 3章 を作成しました。今回は 2章 だけコミットしたいとします。

Sourcetree という Git クライアント の場合、コミット したい行を選択して「Hunk をステージへ移動」ボタンを押すことで ファイルの一部分だけを ステージング することができます。



コメント