コーディングメソドロジー

第122回 もっとGitを使いこなそう2 ~便利なGitコマンド編~

Web制作現場でのGitの普及率は高く、コミット、プッシュ、マージ、プルなどの基本的な操作ができる方は多くいると思います。今回は基本的な操作はできていている方に、さらに便利な使い方を紹介します。

■差分ファイルの抽出

納品ファイルをまとめる時や、段階的にWebサイトをリリースする時など、指定のコミット間の差分ファイルが必要な時があります。そんな時は、次のコマンドを実行するだけで、差分ファイルを抽出しZIPにまとめることができます。

git archive --format=zip --prefix=root/ HEAD `git diff --diff-filter=d --name-only コミット1 コミット2` -o archive.zip

図1:SourceTreeの操作画面-コミットIDの取得

  • git archive:Git管理しているファイルをアーカイブします。
  • --format=zip:zipとしてアーカイブします。
  • --prefix=root/:抽出したファイルを保存するディレクトリ名を指定します。今回はディレクトリ名を「root」にしています。
  • HEAD:zipにしたい対象のブランチを指定します。今回はカレントブランチを指定しています。
  • git diff:commit間の差分を出力します。
  • --diff-filter=d:不要な削除の差分をフィルタリングします。
  • --name-only:ファイルのパスを返すようにします。
  • コミット1 コミット2:抽出したい差分ファイルのコミットの範囲を指定します。
    コミット1とコミット2に抽出したいコミットの開始と終わりを指定します。指定できるコミット情報は ①ブランチ名 ②タグ名 ③コミットID の3つです。
    SourceTreeでは、コミットを右クリックし「クリップボードにSHAをコピーします。」を選択すると簡単にコミットIDを取得することができます。(図1-①)
  • -o archive.zip:差分を抽出できたらZIPファイルができあがります。できあがるZIPファイルの名前を指定します。

■コミットせずに変更を一時保存する

制作の規模が大きくなると、各ページや修正の課題ごとにブランチを作成し、細かく管理してコーディングを行うことが増えてきます。細かくブランチを管理するプロジェクトの場合、作業中のブランチから違うブランチに切り替えて他の作業をしないといけないときがあります。コミットするまで作業は済んでいないけど、ブランチを切り替えたい。でも、修正中の差分をどうにかしないといけない。そんな時は、中途半端な状態でコミットを行うのではなく、「スタッシュ」という機能を使うと便利です。スタッシュは修正中のファイルをコミットするのではなく、一時保存が行えます。

図2:SourceTreeの操作画面-スタッシュする

SourceTreeの操作方法

SourceTreeの場合は、簡単にスタッシュが行えます。
「スタッシュ」操作はボタン(図2-①)を押して、名前(図2-②)をつけて保存するだけです。
作業ブランチに保存した内容を再度反映させるときは、一時保存(図2-③)から、保存した時につけた名前を選択するだけです。

コマンドの操作方法

コマンドの場合は、ダブルクォーテーション(“)で囲んだNameの部分に好きな名前をつけて、スタッシュします。

git stash save "Name"

作業ブランチにスタッシュを反映させるときは、まずスタッシュしたリストを表示します。

git stash list

スタッシュリストを確認して「stash@{N}」のNの部分に、適応したいスタッシュの番号入力します。コマンドを実行すると、保存内容が作業ブランチに反映され、該当スタッシュは削除されます。

git stash pop stash@{N}
  • 大規模サイト制作のご案内 大規模サイトプロジェクトのポイントやサービス内容をご紹介
  • コーディングメソドロジー
  • コーディングファクトリートピックス
  • 受注活動サポートサービス
  • コーディングファクトリーニュース
  • IllustratorでのWebデザイン
  • 求人案内
  • 株式会社モノサス
  • お問い合わせ

    コーディング相談ダイヤル

    お問い合わせ

  • ご相談、お問い合わせフォーム

    ご相談、お問い合わせフォーム