git命令将文件夹移动到另一个文件夹中

我创建了一个与一堆源文件和文件夹common的文件夹。

现在我想将common文件夹移动到include文件夹中,使其看起来像include/common

我试过这些:

  • git add include

  • git mv common/ include/

    但它会因此错误而失败

    致命:来源不明,来源= myrepo / common,目的地= myrepo / include

  • 我试过git mv common / include / common,但是我得到了同样的错误

  • 任何想法如何实现这一目标?


    git最好的事情之一是你不需要明确地跟踪文件重命名。 Git会通过比较文件的内容来找出它。

    所以,就你而言,不要那么努力:

    $ mkdir include
    $ mv common include
    $ git rm -r common
    $ git add include/common
    

    运行git status应该会显示如下的内容:

    $ git status
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #   renamed:    common/file.txt -> include/common/file.txt
    #
    

     git mv common include
    

    应该管用。

    git mv手册页:

    git mv [-f] [-n] [-k] <source> ... <destination directory>
    

    在第二种形式中,最后一个参数必须是现有目录; 给定的源将被移动到这个目录中
    成功完成后更新索引,但仍必须提交更改。

    移动前不应该使用“ git add ”。


    注意:“ git mv AB/ ”,当B不存在作为一个目录时,应该出错,但它没有。

    参见Matthieu Moy( moy )为Git 1.9 / 2.0(2014年第1季度)提交的c57f628:

    Git用于修剪尾部斜线,并使命令等效于' git mv file no-such-dir ',该命令创建文件no-such-dir (而尾部斜线明确指出它只能是一个目录)。

    此修补程序将跳过目标路径的尾部斜杠删除。
    具有结尾斜杠的路径被传递给重命名(2),该错误与适当的消息一起输出:

    $ git mv file no-such-dir/
    fatal: renaming 'file' failed: Not a directory
    

    命令:

    $ git mv oldFolderName newFolderName
    

    它通常工作正常。

    错误“bad source ...”通常表示在上次提交后,源目录中有一些重命名,因此git mv无法找到预期的文件。

    解决方案很简单 - 只需在应用git mv之前提交即可。

    链接地址: http://www.djcxy.com/p/3281.html

    上一篇: git command to move a folder inside another

    下一篇: hard HEAD leaves untracked files behind