MENU
  • 私たちについて
    • 会社概要
    • メッセージ
    • Mission, Vision, Value
  • サービス
  • 選ばれる理由
  • 業務実績
    • お客様の声
  • お役立ち資料
    • 資料ダウンロード
    • ブログ
  • お問い合わせ
サービス
  • テスト代行サービス
  • まるごと顧客管理
  • Simple入金消込み
  • プログラミングスクール
  • まちある佐世保
各種情報
  • お知らせ
  • ブログ
  • 採用情報
  • Wantedly
  • 利用規約
  • プライバシーポリシー
  • 特定商取引に基づく表記
株式会社みんなシステムズ
  • 私たちについて
    • 会社概要
    • メッセージ
    • Mission, Vision, Value
  • サービス
  • 選ばれる理由
  • 業務実績
    • お客様の声
  • お役立ち資料
    • 資料ダウンロード
    • ブログ
  • お問い合わせ
株式会社みんなシステムズ
  • 私たちについて
    • 会社概要
    • メッセージ
    • Mission, Vision, Value
  • サービス
  • 選ばれる理由
  • 業務実績
    • お客様の声
  • お役立ち資料
    • 資料ダウンロード
    • ブログ
  • お問い合わせ
  1. ホーム
  2. ブログ
  3. システム開発
  4. git mv してますか?

git mv してますか?

2022 3/07
システム開発
2022.7.18

サーバーサイドエンジニアの柿﨑です。
早速ですが、git mv してますか?私はしてます。

git mv とは?

git mv はファイル名(またはディレクトリ名)変更時に、変更前の履歴を引き継ぐことができるコマンドです。

###
$ git mv -h
usage: git mv [<options>] <source>… <destination>

-v, –verbose be verbose
-n, –dry-run dry run
-f, –force force move/rename even if target exists
-k skip move/rename errors
–sparse allow updating entries outside of the sparse-checkout con
###

地味なコマンドですがないと困るコマンドなので紹介したいと思います。

git mv を使わないファイル名の変更

言葉で説明するだけだと分かりにくいので例を挙げます。
以下のように git で管理しているファイルがあるとします。

そして、ファイル名を普通に変更(mv コマンドやエクスプローラから直接変更など)すると以下のようになります。

ご覧の通り、ファイル名変更前のファイルは削除(deleted)扱いとなり、ファイル名変更後のファイルは新規作成(Untracked)扱いとなってしまいます。

要するに「ファイル名変更前のファイルと変更後のファイルは別物扱いとなる」ため、ファイル名変更前の変更履歴はここで途絶えてしまうのです。

これでは後から履歴を調査したいときに大変困ります(頻繁にやるわけではありませんが、ときどき要調査なときがあります)。

git mv コマンドでファイル名変更

そこで、掲題の git mv コマンドの出番です。
使い方は通常の mv コマンドと同様です。

###
$ git mv 変更前ファイル名 変更後ファイル名
###

実際に git mv コマンドでファイル名を変更すると以下のようになります。

ご覧の通り、ファイルが renamed となってファイル名の変更前後で同一ファイルだと認識してくれるので、ファイル名変更後も過去の変更履歴をそのまま引き継ぐことができます。

結論 : git mv コマンドを使おう

私は git はコマンド派なのでコマンドで紹介しましたが、GUIのツール(GitHub Desktopなど)には git mv に相当する機能が付いているはずです。
是非 git mv コマンドを活用して快適な git ライフを送りましょう。

システム開発
  • 社内ツールのご紹介
  • PhpStormのすゝめ
株式会社みんなシステムズ

【本社東京オフィス】
〒130-0021 東京都墨田区緑3-1-14 外山ハイツ502
【本店佐世保オフィス】
〒857-0052 長崎県佐世保市松浦町5-13 グリーンビル205
【営業時間】
平日10:00〜19:00
【電話番号】
0800-300-5705(フリーダイヤル)
【メールアドレス】
info@minna-systems.co.jp

サービス
  • テスト代行サービス
  • まるごと顧客管理
  • Simple入金消込み
  • プログラミングスクール
  • まちある佐世保
各種情報
  • お知らせ
  • ブログ
  • 採用情報
  • Wantedly
  • 利用規約
  • プライバシーポリシー
  • 特定商取引に基づく表記

© 株式会社みんなシステムズ.

目次