I'm using msysgit (1.7.9), and I'm looking for the right invocation of the git ls-files
command to show just the (tracked) files and directories at the current level, either from the index, or the current working directory if that's easier.
Essentially it would give a directory listing similar that that you would see on Github. Coming from Windows, I'm not too familiar with the right way of doing the globbing(?).
Use the terminal to display the . git directory with the command ls -a . The ls command lists the current directory contents and by default will not show hidden files. If you pass it the -a flag, it will display hidden files.
Go to the directory manually and do right click → Select 'Git bash' option. Git bash terminal automatically opens with the intended directory. For example, go to your project folder. While in the folder, right click and select the option and 'Git bash'.
To change this current working directory, you can use the "cd" command (where "cd" stands for "change directory"). For example, to move one directory upwards (into the current folder's parent folder), you can just call: $ cd ..
I think you want git ls-tree HEAD
sed'd to taste. The second word of ls-tree's output will be tree
for directories, blob
for files, commit
for submodules, the filename is everything after the ascii tab.
Edit: adapting from @iegik's comment and to better fit the question as asked,
git ls-files . | sed s,/.*,/, | uniq
will list the indexed files starting at the current level and collapse directories to their first component.
I believe git ls-tree --name-only [branch]
will do what you're looking for.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With