问题
How do I copy all files in a directory from another branch? I can list all of the files in that directory by doing
git ls-tree master:dirname
I can then copy all of the files individually by doing
git checkout master -- dirname/filename
However, using wildcards has so far been a total fail. This does nothing:
git checkout master -- dirname/*.png
Though I guess I can use a bash script to do that, there has to be an easier way, right?
回答1:
As you are not trying to move the files around in the tree, you should be able to just checkout the directory:
git checkout master -- dirname
回答2:
If there are no spaces in paths, and you are interested, like I was, in files of specific extension only, you can use
git checkout otherBranch -- $(git ls-tree --name-only -r otherBranch | egrep '*.java')
来源:https://stackoverflow.com/questions/2668886/git-copy-all-files-in-a-directory-from-another-branch