如何从另一个分支复制目录中的所有文件?我可以列出该目录下的所有文件通过
git ls-tree master:dirname
然后我可以逐个复制所有文件通过
git checkout master -- dirname/filename
然而,使用通配符到目前为止是完全失败的。这没有任何作用:
git checkout master -- dirname/*.png
虽然我想我可以使用bash脚本来做到这一点,但必须有一个更简单的方法,对吗?
如何从另一个分支复制目录中的所有文件?我可以列出该目录下的所有文件通过
git ls-tree master:dirname
然后我可以逐个复制所有文件通过
git checkout master -- dirname/filename
然而,使用通配符到目前为止是完全失败的。这没有任何作用:
git checkout master -- dirname/*.png
虽然我想我可以使用bash脚本来做到这一点,但必须有一个更简单的方法,对吗?
当前回答
git checkout sourceBranchName :
可以检出从sourceBranch到本地当前分支的所有内容(根目录)。
我自己测试了。谢谢!
——佛山市顺德
其他回答
复制目录而不跟踪它:
git restore --source master dirname
git checkout sourceBranchName :
可以检出从sourceBranch到本地当前分支的所有内容(根目录)。
我自己测试了。谢谢!
——佛山市顺德
在我的案例中,从原始分支目录获取文件的最简单的解决方案是:
origin -远程存储库别名(默认为origin) 目录中包含所需文件的分支 sourceBranchDirPath -所需目录的相对/绝对路径
文件
git checkout origin/sourceBranchName -- sourceBranchDirPath
例子:
git checkout origin/validation_fix -- src/test/java/validation/
结果是所有来自origin/validation_fix分支的文件 Src /test/java/validation/ relative路径 模式(uncommited)
如果路径中没有空格,并且您像我一样只对特定扩展名的文件感兴趣,您可以使用
git checkout otherBranch -- $(git ls-tree --name-only -r otherBranch | egrep '*.java')
当你不试图在树中移动文件时,你应该能够签出目录:
git checkout master -- dirname