Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Comments on How to use the gitignore file without git(1).

Parent

How to use the gitignore file without git(1).

+1
−0

How can a file list be manually filtered with a gitignore file.

I want to do the equivalent of git ls-files, but it should work even if I remove .git, so I can't use git(1).

Currently, I'm doing

find . -not -type d \
| grep -v ^.git$ \
| grep -v other-files-specified-in-the-gitignore

But this means I'm duplicating the .gitignore file. How can I do this without hard-coding the contents of .gitignore in this script?

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

0 comment threads

Post
+1
−0

You can fake out git as long as you have some empty Git repository available somewhere.

git --git-dir=path-to-empty-repo/.git \
    ls-files --others --exclude-standard
History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

1 comment thread

I don't have .git (1 comment)
I don't have .git
alx‭ wrote 9 months ago

Interesting! Unfortunately, I don't. It's within a release tarball. To be able to run make dist from within that tarball, I need to be able to list the files, but release tarballs don't have .git (and shipping an empty git repository within the tarball would be very fishy).