git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Make git ls-files omit deleted files
@ 2024-01-12 21:19 Raul Rangel
  2024-01-12 21:37 ` Junio C Hamano
  0 siblings, 1 reply; 5+ messages in thread
From: Raul Rangel @ 2024-01-12 21:19 UTC (permalink / raw)
  To: git

Hello,
I'm trying to copy my current git worktree to a new directory, while
including all modified and untracked files, but excluding any ignored
files. I essentially want a copy of the tree assuming someone ran `git
add --all && git commit` and cloned that commit into a different
directory.

I got pretty close with the following command:

    $ git ls-files --cached --modified --others --exclude-standard
--deduplicate | xargs cp --parents --no-dereference
--target-directory=/tmp/clone/

The problem is that if I have an unstaged delete, `ls-files` will
print it out as a modification and `cp` will print an error saying
that it failed to copy the non-existing file.

The man page states this behavior:

> --modified: Show files with an unstaged modification (note that an unstaged deletion also counts as an unstaged modification)

Is there another way to achieve what I'm doing that's not too
expensive? If not, could a `--no-deleted-as-modified` flag be added?

Thanks,
Raul

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-01-16 21:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-12 21:19 Make git ls-files omit deleted files Raul Rangel
2024-01-12 21:37 ` Junio C Hamano
2024-01-12 21:50   ` Raul Rangel
2024-01-12 22:18   ` rsbecker
2024-01-16 21:22   ` Raul Rangel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).