如何从另一分支匹配特定模式的git checkout所有文件?

时间:2019-04-03 02:17:47

标签: bash git

我想从另一个符合特定模式的git分支复制所有文件。

2 个答案:

答案 0 :(得分:1)

说您需要所有目录中的所有js文件。可以这样完成:

git checkout the-other-branch -- '*/*.js'

这会将所有这些文件放到工作树中,也准备好要提交的索引,并且与要检出的分支具有 no 关系。 ..您的分支指针不会移动。

答案 1 :(得分:1)

我能够使用创建的bash命令来解决。首先git checkout您要复制的分支,然后运行以下命令:

git ls-tree -r --name-only <branch> | grep <pattern> | while read line; do git checkout <branch> -- $line; done

首先,这会使用git-ls-tree列出源分支目录中的所有文件,然后使用grep来仅筛选与模式匹配的文件。然后使用while循环读取每一行,并使用git checkout复制文件。