未来エンジニア養成所Blog

月単価180万以上のプログラミング講師がプログラミングを皆に楽しんでもらうための情報をお届けします。

【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