Git チュートリアル - ファイル操作

胡金庫 2023年1月30日
  1. Git はファイルを削除する
  2. Git 名前変更ファイル
  3. Git 移動ファイル
Git チュートリアル - ファイル操作

このチュートリアルでは、ファイルの削除、移動、名前変更など、git でのファイル操作について学習します。

Git はファイルを削除する

最も簡単なファイルを追跡から削除して最終的にライブラリから削除する方法は git rm です。

$ git rm tes2.txt
rm 'test2.txt'

このコマンドを実行すると、ファイル test2.txt が作業フォルダーから削除され、この削除情報がステージング領域に追加されます。

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    deleted:    test2.txt

Git 名前変更ファイル

作業コピーのファイルの名前を直接変更する場合、Git はこの操作を 2つの操作と見なします。最初の操作は古い新しいファイルを削除し、2 番目の操作は新しく名前を付けたファイルを作業コピーに追加することです。

$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	deleted:    test1.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	test1_rename.txt

no changes added to commit (use "git add" and/or "git commit -a")

このような操作の欠点は、ファイルの改訂履歴が破壊されることであり、この名前変更の瞬間よりも前に、この新しく名前が付けられたファイルの改訂履歴を取得できなかったことです。バージョン管理では望ましくありません。

Git には、この壊れたリンケージの問題を解決するための名前変更コマンドがあります-mv

$ git mv test1.txt test1_rename.txt

mv は実際には move を意味しますが、ここでは test1.txt から test1_rename.txt に移動することはファイルの名前を変更することも意味します。

ここで git status を確認すると、renamed が表示され、

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	renamed:    test1.txt -> test1_rename.txt

Git 移動ファイル

ファイルの名前を変更するのと同様に、git でファイルを移動する場合も git mv コマンドを使用しますが、ファイルの宛先は移動したファイルと同じディレクトリではありません。

$ git mv test1_rename.txt move/test1.txt

ここで、move は宛先ディレクトリであり、test1.txt は移動したファイル test1_rename.txt の新しい名前です。

git status を確認しましょう。

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	renamed:    test1_rename.txt -> move/test1.txt

ご覧のとおり、これは renamed 操作でもありますが、宛先が異なります。

著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook