How to make git mark a deleted and a new file as a file move?

I've moved a file manually and then I've modified it. According to Git, it is a new file and a removed file. Is there any way to force Git into treating it as a file move?


Git will automatically detect the move/rename if your modification is not too severe. Just git add the new file, and git rm the old file. git status will then show whether it has detected the rename.

additionally, for moves around directories, you may need to:

  • cd to the top of that directory structure.
  • Run git add -A .
  • Run git status to verify that the "new file" is now a "renamed" file
  • If git status still shows "new file" and not "renamed" you need to follow Hank Gay's advice and do the move and modify in two separate commits.


    在单独的提交中执行移动和修改。


    It's all a perceptual thing. Git is generally rather good at recognising moves, because GIT is a content tracker

    All that really depends is how your "stat" displays it. The only difference here is the -M flag.

    git log --stat -M

    commit 9c034a76d394352134ee2f4ede8a209ebec96288
    Author: Kent Fredric
    Date:   Fri Jan 9 22:13:51 2009 +1300
    
    
            Category Restructure
    
         lib/Gentoo/Repository.pm                |   10 +++++-----
         lib/Gentoo/{ => Repository}/Base.pm     |    2 +-
         lib/Gentoo/{ => Repository}/Category.pm |   12 ++++++------
         lib/Gentoo/{ => Repository}/Package.pm  |   10 +++++-----
         lib/Gentoo/{ => Repository}/Types.pm    |   10 +++++-----
         5 files changed, 22 insertions(+), 22 deletions(-)
    

    git log --stat

    commit 9c034a76d394352134ee2f4ede8a209ebec96288
    Author: Kent Fredric
    Date:   Fri Jan 9 22:13:51 2009 +1300
    
        Category Restructure
    
     lib/Gentoo/Base.pm                |   36 ------------------------
     lib/Gentoo/Category.pm            |   51 ----------------------------------
     lib/Gentoo/Package.pm             |   41 ---------------------------
     lib/Gentoo/Repository.pm          |   10 +++---
     lib/Gentoo/Repository/Base.pm     |   36 ++++++++++++++++++++++++
     lib/Gentoo/Repository/Category.pm |   51 ++++++++++++++++++++++++++++++++++
     lib/Gentoo/Repository/Package.pm  |   41 +++++++++++++++++++++++++++
     lib/Gentoo/Repository/Types.pm    |   55 +++++++++++++++++++++++++++++++++++++
     lib/Gentoo/Types.pm               |   55 -------------------------------------
     9 files changed, 188 insertions(+), 188 deletions(-)
    

    git help log

       -M
           Detect renames.
    
       -C
           Detect copies as well as renames. See also --find-copies-harder.
    
    链接地址: http://www.djcxy.com/p/22652.html

    上一篇: 可以在Git中移动/重命名文件并保留其历史记录吗?

    下一篇: 如何将git标记删除并将新文件作为文件移动?