我运行了命令" 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
每个文件夹都包含我修改过的多个文件,但由于某种原因分组到这些文件夹中。
我需要将这些更改分成多个拉取请求,因此&#34; git commit -a&#34;不会做的。
我看到的最佳解决方案是&#34; git add -all&#34;,复制&#34; git status&#34;和&#34; git reset&#34;再次,但这似乎是很多努力。
有更好的解决方案吗?
答案 0 :(得分:5)
Git只跟踪文件(不是文件夹/目录)。
但是,出于优化目的,git status
使用缩写格式在子目录/文件夹中报告未跟踪文件(如果可能)。
要取消缩写,请使用git status -uall
(-u
+ all
,如&#34;显示所有文件,而不是缩短的列表&#34 )。你也可以写-uno
表示显示没有文件,或只是-u
,这意味着-uall
。默认值为-unormal
,这是正常的缩写版本。
您可以添加任何单个文件,例如:
git add folder1/foo.txt
现在该文件已被跟踪,git status
无法再缩写:它必须一次列出folder1/
中所有尚未跟踪的文件,因为跟踪了folder1/foo.txt
。< / p>