kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。 Ubuntuの最新情報も紹介しています。

ワーキングディレクトリーにあるファイルとステージングエリアにあるファイルの差分を作成し、ステージングエリアのファイルに適用する

   「ワーキングディレクトリー」にあるファイルと「ステージングエリア」にあるファイルの差分を作成し、差分を「ステージングエリア」にあるファイルに適用します。

   以前「git checkout」コマンドの紹介で、「ファイルの差分を作成し、ワーキングディレクトリーのファイルに差分を適用するコマンド」を紹介しました。
   この機能と似たような機能ですが、こちらは差分を「ステージングエリア」にあるファイルにのみ適用します。
  

  差分の集合であるハンク(hunk)について

    ユーザーは差分を「ハンク(hunk)」という単位で適用します。
    「ハンク」というのは、差分の集合・差分の集まりのことです。

    1つのファイル内に変更箇所が複数行ある場合、複数の「ハンク」が現れることがあります。
    例えば100行のテキストがあり、2行目から5行目及び、90行目から95行目に差分があれば、「ハンク」が2つ現れます。

    それぞれの「ハンク」は、差分を適用する前に修正し、元に戻す内容を調整することもできます。
    「差分の適用 = ハンクの適用」です。

    「ハンク」をどの差分の範囲で作成するかは、「Git」が決定します。
    もし「ハンク」内の差分が分割できる内容であれば、ユーザーは1つの「ハンク」を複数の「ハンク」に分割することもできます。

  差分適用時の注意事項

    差分を適用する際、ユーザーは差分を自分で編集し、より高度な差分を適用することができます。

    しかし差分が適用されるのは、「ステージングエリア」にあるファイルであり、「ワーキングディレクトリー」にあるファイルには差分は適用されません。

    複雑な差分の適用は、「ステージングエリア」にあるファイルと「ワーキングディレクトリー」にあるファイルの相違点が大きくなり、後で混乱の元になりうるため、ユーザーが把握できる範囲内で作業を行ってください。

    例えば差分適用後、「ワーキングディレクトリー」にあるファイルを「ステージングエリア」に追加すると、差分を適用した「ステージングエリア」のファイルは「ワーキングディレクトリー」にあるファイルで上書きされてしまいます。

    結果、適用した差分が失われてしまいます。

差分の状態について

  それぞれの差分の状態には、以下の3種類があります。

  1. 差分の適用を決定した
  2. 差分の未適用を決定した
  3. 差分の適用・未適用は未決

  1.差分の適用を決定した

    ユーザーが差分の適用を決定し、実際に差分の適用を行った状態です。

  2.差分の未適用を決定した

    ユーザーが差分の未適用を決定し、実際に差分の適用を行わなかった状態です。

  3.差分の適用・未適用は未決

     ユーザーが差分を適用するかどうか決定していない状態です。

コマンドの実行例

  ここでは例として、「master.txt」ファイルに対して、差分の適用作業を行います。

  1.ステージングエリアにあるファイルの中身

    「ステージングエリア」にある「master.txt」ファイルの中身は、以下のようになっています。


  2.ワーキングディレクトリーにあるファイルの中身

    「ワーキングディレクトリー」にある「master.txt」ファイルの中身は、以下のようになっています。


  3.ワーキングディレクトリーの状態

    「ワーキングディレクトリー」の状態を見ると、以下のようになっています。
    「master.txt」ファイルは、編集されたファイルであることが分かります。


    「ワーキングディレクトリー」と「ステージングエリア」にある「master.txt」ファイルの中身が異なっていることが分かります。

  4.コマンドの実行

    コマンドのオプションは、以下のオプションを指定します。

ショートオプション ロングオプション
-p --patch

    「端末」から、以下のコマンドを実行します。
    コマンドの詳細は、「ステージングエリアにファイルを追加するコマンドの説明」を参考にしてください。
    ポイントは、赤字の箇所です。

git add --patch master.txt


  5.コマンドの実行結果

    「ワーキングディレクトリー」にあるファイルと「ステージングエリア」にあるファイルの差分が作成され、その差分が表示されます。


    「-」は、「ステージングエリア」のファイルに存在するが、「ワーキングディレクトリー」のファイルに存在しない行を表しています。

    「+」は、「ステージングエリア」のファイルに存在していないが、「ワーキングディレクトリー」のファイルに存在している行を表しています。

    この差分をどう適用するのか選択肢が表示されるので、該当する選択肢に対応したキーを押します。

  差分の適用に関する選択肢

    差分の適用に関する選択肢です。


  表示する差分の移動や検索に関する選択肢

    表示する差分の移動や検索に関する選択肢です。


  差分の分割や編集に関する選択肢

    差分の分割や編集に関する選択肢です。


  選択肢のヘルプ

    選択肢のヘルプを表示します。

選択肢
(キー)
内容
? 選択肢のヘルプを表示する


関連コンテンツ
同一カテゴリーの記事
コメント
オプション