Git移動ファイル

目次

説明

使用する

説明

予防

存在しないファイルを移動する

移動のターゲットパスが存在しません

移動先のパスに同名のファイルが存在します

ウェアハウスの外にファイルを移動する


 

説明

他のVCSシステムとは異なり、Gitはファイル移動操作を明示的に追跡しません。Gitでファイルの名前が変更された場合、ウェアハウスに保存されているメタデータは、これが名前変更操作であることを反映しません。しかし、Gitは非常に賢く、何が起こったのかを推測します。

 

使用する

git mvコマンドを使用して、ファイルまたはディレクトリを別のファイルまたはディレクトリに移動するか、名前を変更します。

git mv <path> <target_path>
ファイルの現在のパス
target_path ファイルのターゲットパス


 

説明

git mvコマンドは、実際にはmvコマンドとgitaddコマンドのコレクションです。たとえば、システムディレクトリのlogin.pyをユーザーディレクトリに移動します。

git mv system/login.py user/login.py

これは、次のコマンドの効果と一致しています。

mv system/login.py user/login.py
git add user/login.py

 

ローカルウェアハウスのreadmd_en.mdをreadme.mdに変更します。

$ ll
total 0
drwxr-xr-x    4 liushuochen  staff   128 11 15 15:08 ./
drwxr-xr-x+ 124 liushuochen  staff  3968 11 15 15:09 ../
drwxr-xr-x   12 liushuochen  staff   384 11 15 15:09 .git/
-rw-r--r--    1 liushuochen  staff     0 11 15 15:08 readme_en.md
$ git mv readme_en.md readme.md
$ ll
total 0
drwxr-xr-x    4 liushuochen  staff   128 11 15 15:10 ./
drwxr-xr-x+ 124 liushuochen  staff  3968 11 15 15:10 ../
drwxr-xr-x   12 liushuochen  staff   384 11 15 15:10 .git/
-rw-r--r--    1 liushuochen  staff     0 11 15 15:08 readme.md
$ git commit -m "modify readmd_en.md to readmd.md"
[master aa02620] modify readmd_en.md to readmd.md
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename readme_en.md => readme.md (100%)

 

予防

存在しないファイルを移動する

存在しないファイルを移動すると、git mvコマンドは次のエラーを報告します:致命的:不正なソース

$ git mv a.txt b.txt
fatal: bad source, source=a.txt, destination=b.txt

移動のターゲットパスが存在しません

移動先のパスが存在しない場合、gitmvはエラーの宛先ディレクトリが存在しないことを報告します。

たとえば、次のファイル構造のプロジェクトでは、最も外側のreadme.mdをconfigディレクトリ(存在しないディレクトリ)に移動します。

$ tree .
.
├── conf
│   └── readme.md
└── readme.md

1 directory, 2 files
$ git mv readme.md config/
fatal: destination directory does not exist, source=readme.md, destination=config/

移動先のパスに同名のファイルが存在します

移動するターゲットパスに、移動するファイルと同じ名前のファイルがある場合、gitmvはエラーの宛先が存在することを報告します。

たとえば、次のファイル構造のプロジェクトでは、最も外側のreadme.mdをconfディレクトリに移動します。

$ tree .
.
├── conf
│   └── readme.md
└── readme.md

1 directory, 2 files
$ git mv readme.md conf/
fatal: destination exists, source=readme.md, destination=conf/readme.md

ウェアハウスの外にファイルを移動する

パスが正しい場合でも、git mvを使用してウェアハウス内のファイルをウェアハウスの外に移動しようとすると、gitmvはエラーを報告します。

$ git mv readme.md ../
fatal: '../' is outside repository

 

おすすめ

転載: blog.csdn.net/TCatTime/article/details/109704102