0

我运行了命令“git reset”,但我未暂存的更改被放入文件夹中。运行 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

每个文件夹都包含多个我修改过的文件,但由于某种原因被分组到这些文件夹中。

我需要将这些更改分成多个拉取请求,因此“git commit -a”不会这样做。

我看到的最好的解决方案是“git add -all”,复制“git status”,然后再次“git reset”,但这似乎需要付出很多努力。

有更好的解决方案吗?

4

1 回答 1

6

Git 只跟踪文件(不是文件夹/目录)。

但是,出于优化目的,如果可能,使用缩写格式git status 报告子目录/文件夹中的未跟踪文件。

要取消缩写,请使用git status -uall(即-u+ all,如“显示所有文件,而不是缩短列表”)。你也可以写下-uno显示文件的意思,或者只是这意味着无论如何。默认为,这是正常的缩写版本。-u-uall-unormal

您可以添加任何单个文件,例如:

git add folder1/foo.txt

现在该文件已被跟踪,并且git status不能再缩写:它必须folder1/一次列出所有仍未跟踪的文件,因为folder1/foo.txt已跟踪。

于 2017-07-25T00:03:49.890 回答