ale*_*nko 178 git branch copy file
如何从另一个分支复制目录中的所有文件?我可以列出该目录中的所有文件
git ls-tree master:dirname
Run Code Online (Sandbox Code Playgroud)
然后,我可以单独复制所有文件
git checkout master -- dirname/filename
Run Code Online (Sandbox Code Playgroud)
但是,到目前为止,使用通配符已经完全失败了.这没有任何作用:
git checkout master -- dirname/*.png
Run Code Online (Sandbox Code Playgroud)
虽然我想我可以使用bash脚本来做到这一点,但必须有一个更简单的方法,对吧?
CB *_*ley 261
由于您没有尝试在树中移动文件,因此您应该只需检出目录:
git checkout master -- dirname
Run Code Online (Sandbox Code Playgroud)
sim*_*leo 19
要复制目录而不跟踪它:
git restore --source master dirname
Run Code Online (Sandbox Code Playgroud)
tes*_*t30 17
如果路径中没有空格,并且您感兴趣,就像我一样,只在特定扩展名的文件中,您可以使用
git checkout otherBranch -- $(git ls-tree --name-only -r otherBranch | egrep '*.java')
Run Code Online (Sandbox Code Playgroud)
就我而言,从原始分支目录获取文件的最简单的解决方案是:
文件
git checkout origin/sourceBranchName -- sourceBranchDirPath
Run Code Online (Sandbox Code Playgroud)
例子:
git checkout origin/validation_fix -- src/test/java/validation/
Run Code Online (Sandbox Code Playgroud)
结果是草稿模式下src/test/java/validation/相对路径中来自origin/validation_fix分支 的所有文件(未提交)