未来エンジニア養成所Blog

プログラミングを皆に楽しんでもらうための情報をお届けします。

【Git&GitHub】ファイルの移動を記録(git mvコマンド)

title


ファイルの移動を記録しよう

今回は、ファイルの移動を記録するやり方について見ていきます。


ファイルの移動もファイルの削除と同じように「git add」とは別のコマンドが用意されています。

追加と削除のコマンドについてはこちらを参照してください。 phoeducation.work phoeducation.work


それではファイルの移動を記録するコマンドを見ていきましょう。


コマンドは「git mv」コマンドを使います。mvとはmove(移動)の略です。

$ git mv <旧ファイル名> <新ファイル名>


これでファイルの移動、つまり、ファイル名の変更を記録することができます。

これをするとファイル名が変更されて、かつ、ステージにもその変更が反映されています。


このコマンドは実は次の3つのコマンドを実施することと同じ効果を持っています。

$ mv <旧ファイル> <新ファイル>
$ git rm <旧ファイル>
$ git add <新ファイル>


まず、「mv」コマンドでファイルの移動をします。

「mv」コマンドはファイル名を変更するコマンドです。

ここでワークツリーのファイル名が変更されます。

その後、その変更をステージに記録していきます。

ファイルを移動すると古いファイル名が削除され、新しいファイルが作成されたのと同じ状態になります。

ですので、まず「git rm」コマンドで「古いファイルが削除された」というのをGitに伝えていきます。

その後、「git add」コマンドで「新しいファイルが追加された」というのをステージに反映させていきます。


このように「git mv」コマンドは通常のコマンドを使っても代替できるので、どちらを使っても大丈夫です。


たくさんコマンドを打つのが面倒だという場合は「git mv」コマンドを使ってください。

逆に「git mv」コマンドや新しいコマンドを覚えるのが面倒だと言う場合は、「mv」「git rm」「git add」を使えば同じことができます。


ではイメージを確認します。


ワークツリーに「index.html」というファイルがあったとして、それがステージにも反映されているとします。


この状態から「git mv」コマンドを使ってファイル名の変更をしていきます。

「git mv」コマンドを使って「index2.html」というファイル名に変更します。


ファイルの移動を記録する


するとその時点でステージの方にも「index2.html」とう状態が反映されています。


このようにファイルの移動、ファイル名の変更を記録できるのが「git mv」コマンドになります。


実際にやってみよう

では、ターミナルで確認します。

「git_tutorial」に移動します。


まずは「ls」でファイルの状態を確認します。

$ ls
index.html


「index.html」があります。


「git status」も確認しておきます。

$ git status
On branch master
nothing to commit, working tree clean


何も変更されていません。


ではこの状態で「git mv」コマンドを使ってファイル名を変更していきます。

今回は「index.html」を「index2.html」というファイル名に変更してみます。

$ git mv index.html index2.html


では「ls」で確認してみましょう。

$ ls
index2.html


ファイル名が「index2.html」に変更されています。


では変更状態はどうでしょうか。

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    renamed:    index.html -> index2.html


「Changes to be committed」となっているので、コミットすべき変更、つまりステージに追加された変更があるとなっています。

それが「renamed」(ファイル名の変更)であり、「index.html」が「index2.html」に変更されたと表示されています。


このように「git mv」コマンドを使うことで、ワークツリーのファイル名が変更され、しかもステージにもそれが記録されています。


では元のファイル名に戻しておきましょう。


「git mv index2.html index.html」として元に戻しておきます。

$ git mv index2.html index.html


「ls」で確認しておきましょう。

$ ls
index.html


「index.html」になっています。


「git status」をしてみます。

$ git status
On branch master
nothing to commit, working tree clean

何の変更もないと言われています。


参考図書



独学で挫折しそうになったら、オンラインプログラミングスクール
未来エンジニア養成所Logo



あわせて学習したい

phoeducation.work