0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git】FTPアップロード時に便利!現在のブランチとmainの差分ファイルを一覧出力する方法

Posted at

はじめに

現場によっては、**「開発環境はGit管理だけど、テスト環境への反映はFTPでファイルアップロード」**という運用をしているケースがあると思います。

そんなとき、修正したファイルをテスト環境にアップロードするために、「どのファイルを変更したっけ?」と確認する必要がありますが、以下のような悩みはありませんか?

  • コミットログを一つずつ確認するのは手間。
  • 同じファイルを何度も修正していると、コミット単位では重複が発生してリストアップが面倒。
  • GitのGUIツールだと、パスのコピーがしづらい。

そこで、**「現在の作業ブランチとmaster(またはmain)ブランチの差分ファイルのみを、ファイル名ベースで一覧出力する」**コマンドをメモとして残しておきます。

結論:このコマンドを使う

以下のコマンドを実行すると、変更があったファイルパスだけがズラッと出力されます。

Bash

# masterブランチの場合
git diff master...HEAD --name-only
# mainブランチの場合
git diff main...HEAD --name-only`

実行結果

Laravelプロジェクトでの出力イメージです。

app/Http/Controllers/Admin/UserController.php
app/Http/Requests/UserRequest.php
app/Models/User.php
database/migrations/2024_02_03_000000_add_columns_to_users_table.php
resources/views/admin/user/index.blade.php
resources/views/admin/user/edit.blade.php
routes/web.php

これなら、FTPクライアントでアップロードする際に、どのディレクトリのどのファイルを探せばいいか一目瞭然です。

解説

コマンドのオプションについての簡単な解説です。

  • master...HEAD (ドット3つ)
    • 派生元(master)と現在のブランチ(HEAD)の共通の祖先から、現在までの変更分を抽出します。
    • 単に master と書くよりも、ブランチを切ってからの純粋な差分を取りやすい指定方法です。
  • -name-only
    • コードの差分(diff)は表示せず、変更されたファイルの名前(パス)のみを表示するオプションです。

おまけ:エイリアスに登録しておくと便利

毎回打つのが面倒な場合は、.gitconfig にエイリアスを登録しておくと幸せになれます。

Ini, TOML

[alias]
    # 'git diff-list' で実行できるようになる
    diff-list = diff master...HEAD --name-only

まとめ

FTPアップロード作業は手動だとミスが起きやすいですが、このコマンドでリスト化しておけば、「アップロード漏れ」や「不要なファイルの確認」の手間がぐっと減ります。

同じような境遇の方の参考になれば幸いです。

参考文献

Geminiさん

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?