user2605633
user2605633

Reputation: 105

Git track untracked files without adding to commit

I ran the command "git reset", but my unstaged changes were put into folders instead. I get something like the following after running git status:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   file1
    modified:   file2
    modified:   file3
    modified:   file4
    modified:   file5

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    folder1
    folder2
    folder3
    folder4

Each of the folders contains multiple files which I modified, but were for some reason grouped into these folders.

I need to separate these changes into multiple pull requests, so "git commit -a" won't do.

The best solution I see is to "git add -all", copy the "git status", and "git reset" again, but that seems like a lot of effort.

Is there a better solution?

Upvotes: 0

Views: 5861

Answers (1)

torek
torek

Reputation: 488183

Git only tracks files (not folders / directories).

However, for optimization purposes, git status reports untracked files within a sub-directory / folder using an abbreviated format, if possible.

To de-abbreviate, use git status -uall (that's -u + all, as in "show me all the files, not a shortened list"). You can also write -uno meaning show no files, or just -u which means -uall anyway. The default is -unormal, which is the normal abbreviated version.

You can add any individual file, e.g.:

git add folder1/foo.txt

and now that file is tracked, and git status can no longer abbreviate: it must list all still-untracked files in folder1/ one at a time, since folder1/foo.txt is tracked.

Upvotes: 7

Related Questions