我得到了一个包含如下文件的项目:
MyProject/
a.txt
b.txt
c.txt
我在目录中初始化了一个 Git 存储库,但是(愚蠢地)一开始并没有将所有文件添加到存储库中。相反,在我意识到我需要更改它们之前,我将文件添加到了存储库中。
git add a.txt; git commit -m "Pristine A"
<awesome changes to a.txt>
git commit -am "Awesome Changes"
不幸的是,在我疯狂编辑的热情中,我忘记了对某些文件执行此操作。(阅读:许多目录中的数十个文件,通过显式路径很难找到。)
<awesome changes to b.txt>
git status # Uh oh, new file b.txt
我可以在我做出令人敬畏的更改之前获得项目的快照,以便 Git 可以告诉我从那时起哪些文件发生了更改。但是,我不想丢失我已经添加的数十个提交(带有描述)。
如何获取“原始”快照,并让 Git 计算与我的工作目录相比哪些文件发生了更改,而不会丢失我现有的提交,也不会为那些确实更改但已记录在提交中的文件获得误报?
FWIW 我最初不添加整个目录的“理由”是因为有数千个与我的工作无关的文件,该目录仅在高延迟 SMB 上可用,我认为我知道哪些文件很重要。