Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 从另一个分支复制目录_Git - Fatal编程技术网

Git 从另一个分支复制目录

Git 从另一个分支复制目录,git,Git,有一个问题“”说明了如何进行。但它不会删除当前分支中的文件,而是删除其他分支中的文件 我通常使用的解决方案很少: 本地删除目录rm-r dir,然后执行git checkout otherBranch--dir。它可以工作,但是对于大目录来说速度很慢 git checkout dir然后git rm$(git diff--仅命名其他分支--dir)。这是可行的,但我认为应该有更好的解决办法 有更简单的方法吗 git reset otherBranch -- dir git clean -df g

有一个问题“”说明了如何进行。但它不会删除当前分支中的文件,而是删除其他分支中的文件

我通常使用的解决方案很少:

  • 本地删除目录
    rm-r dir
    ,然后执行
    git checkout otherBranch--dir
    。它可以工作,但是对于大目录来说速度很慢

  • git checkout dir
    然后
    git rm$(git diff--仅命名其他分支--dir)
    。这是可行的,但我认为应该有更好的解决办法

  • 有更简单的方法吗

    git reset otherBranch -- dir
    git clean -df
    git checkout .
    

    这将用另一个分支上相同目录的内容更新dir的内容。

    我不知道任何其他方法,但我很好奇:您是否尝试过运行基准测试以了解这两种方法的运行情况,例如,
    github.com/git/git
    存储库?@Jubobs我打赌第二个选项会更快,但如果
    diff
    返回的列表太大,则可能会失败。如果文件名有空格或特殊字符,它也会失败。如果您的想法是在少量目录状态(即分支)之间频繁切换,那么您应该拥有文件系统上的所有状态,并且只对您想要的状态进行符号链接。结果是即时的。@JoeAtzberger不,有时我想将目录恢复到其他版本时会这样做。