在this question中,答案说我可以使用*
指向文件。
这适用于git add
,但当我尝试将其与git checkout <commit> <file>
一起使用时,我遇到了问题。
第二个答案中提到的git add **/DSManger.java
方法也不适用于git checkout
。
leafpile (notification *+) Dev $ git add *NewTaskActivity.java
(no problem)
leafpile (notification *+) Dev $ git checkout dbd1 *NewTaskActivity.java
error: pathspec '*NewTaskActivity.java' did not match any file(s) known to git.
为什么?
答案 0 :(得分:0)
当你做一个git时,它会递归地添加你提出的内容(可以像你一样进行正则表达式)。
但是当你结账时,你需要提供完整的路径
您需要将完整路径传递给结帐
# This is the syntax
git checkout <commit> <file>
# pass the full path to checkout
git checkout <commit> /path/to/file/NewTaskActivity.java
# checkout all files under the given folder:
git checkout <commit id> -- path/to/folder/**
Checking out file from different branch
强> # when checking out from branch you need to add the -- before the file path
git checkout <branch> -- <path to file>