Git:手动重命名文件,Git很困惑

mme*_*rsz 51 git version-control

我正在使用Git并手动重命名我已添加到存储库的文件.现在,我添加了"new"文件,我将其重命名为存储库,但Git抱怨"旧"文件已被删除.那么我怎么能让Git忘记旧文件呢?更好的是,我如何告诉Git"新"文件确实是"新"文件,以便我可以保持更改历史记录不变?

Jak*_*org 42

没有问题.简单git rm old或甚git add -A至,它会意识到它是一个重命名.Git会看到删除加上与重命名相同内容的添加.

你不需要撤消,取消,使用git mvgit mv old new只是一个简单的手mv old new; git rm old; git add new.

  • 如果旧文件已经消失,则必须使用`git rm --cached old`,因为工作树中没有要删除的文件. (10认同)
  • 如果移动文件并更改几行,然后`git add -A`怎么办?Git是否足够聪明,知道_similar_文件与旧文件相同? (2认同)
  • @Phil是的.试试吧. (2认同)

Amb*_*ber 8

首先,取消手动移动文件的暂存添加:

$ git reset path/to/newfile
$ mv path/to/newfile path/to/oldfile
Run Code Online (Sandbox Code Playgroud)

然后,使用Git移动文件:

$ git mv path/to/oldfile path/to/newfile
Run Code Online (Sandbox Code Playgroud)

当然,如果您已经提交了手动移动,则可能需要在移动之前重置为修订版,然后再git mv从那里开始.

  • 最后一个命令给出了一个错误:致命:不受版本控制 (3认同)