SVN と Git の違い (3) コミット操作

SVN と Git の違い
コミット操作の違い ~ 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 をステージへ移動」ボタンを押すことで ファイルの一部分だけを ステージング することができます。

コメント

タイトルとURLをコピーしました