I am looking at the man page for git ls-tree . It has an option for path.
I have a directory called db and in that directory I have a few .rb files.
Then why my command is failing
git ls-tree db/*.rb
I am looking at the man page for git ls-tree . It has an option for path.
I have a directory called db and in that directory I have a few .rb files.
Then why my command is failing
git ls-tree db/*.rb
First the actual man page is here. That is the page for the latest Git version.
Second, that official man page says:
Lists the contents of a given tree object, like what "
/bin/ls -a
" does in the current working directory.
Note that:
the behaviour is slightly different from that of "
/bin/ls
" in that the paths denote just a list of patterns to match, e.g. so specifying directory name (without-r
) will behave differently, and order of the arguments does not matter.the behaviour is similar to that of "
/bin/ls
" in that the paths is taken as relative to the current working directory.
E.g. when you are in a directory sub that has a directory dir, you can rungit ls-tree -r HEAD dir
to list the contents of the tree (that issub/dir
inHEAD
).
You don't want to give a tree that is not at the root level (e.g.git ls-tree -r HEAD:sub dir
) in this case, as that would result in asking forsub/sub/dir
in theHEAD
commit. However, the current working directory can be ignored by passing--full-tree
option.
In your case:
git ls-tree HEAD db/*.rb
might work better.