当git rm和git add在不同的文件上完成时重命名文件

eva*_*ing 2 git

我刚刚做了git rm file1.c以后的git status节目

On branch master
Your branch is ahead of 'origin/master' by 2 commits.
  (use "git push" to publish your local commits)
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    deleted:    file1.c

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

    dir/file2.c
    dir/file3.c
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利.但是,如果git add dir/file2.c我得到了

On branch master
Your branch is ahead of 'origin/master' by 2 commits.
  (use "git push" to publish your local commits)
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    renamed:    file1.c -> dir/file2.c

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

    dir/file3.c
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是我做错了?我希望新文件列为新文件.除了简短的版权声明[\ edit]之外,file1.c和file2.c绝不会有类似的内容[编辑].

mu *_*u 無 7

这不是错误,这是一个功能.

删除文件,然后添加大多数代码相同的另一个文件时,这是一个等同于重命名文件的操作.

因此,git将其显示为

renamed:    file1.c -> dir/file2.c
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看git-scm上的此链接.此外,您可以检查git无法检测重命名以及git如何检测类似文件,以进行重命名检测.