在git中暂存一个暂存文件?
我正在使用git来管理我的项目。我对git在暂存文件时的工作流程感到困惑 如果我暂存文件并忘记提交,然后我修改了该文件并再次暂存并提交,我如何回滚到第一个暂存?如“”中所述,每次更改文件内容并将其添加到缓存时,您都要执行以下操作:在git中暂存一个暂存文件?,git,commit,stage,Git,Commit,Stage,我正在使用git来管理我的项目。我对git在暂存文件时的工作流程感到困惑 如果我暂存文件并忘记提交,然后我修改了该文件并再次暂存并提交,我如何回滚到第一个暂存?如“”中所述,每次更改文件内容并将其添加到缓存时,您都要执行以下操作: git hash-object -w test.txt 将其存储到存储的对象 我刚刚为一个文件连续添加了两个git,然后添加了一个: C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo\.git>gfind
git hash-object -w test.txt
将其存储到存储的对象
我刚刚为一个文件连续添加了两个git
,然后添加了一个:
C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo\.git>gfind -mmin -10 -print
.
./index
./objects/4f
./objects/4f/76d586459ec6ffc42257bb4c61d5422051cb10
./objects/61
./objects/61/24401794e7fee613f5a56593a0a8a059b2627a
(请注意-mmin
参数,以查找仅在过去10分钟内修改过的文件)
我本可以在每个git add
之后列出相同的sha1,并加上:
git rev-parse :0:abstractNode_test.go
请参见(和“”):在索引中添加文件仅为阶段0(在合并过程中使用阶段1、2和3,以记录仍在索引中的公共祖先、源和目标版本)
如果我存储这两个blob的内容:
C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo>
git cat-file -p 4f76d586459ec6ffc42257bb4c61d5422051cb10 > a
git cat-file -p 6124401794e7fee613f5a56593a0a8a059b2627a > b
(注意我是如何将blob路径的“4f/
”部分与路径的其余部分连接起来以获得完整的sha1)
a
和b
之间的差异确实为我提供了添加到同一文件索引中的额外位
还提到: 另一种(我认为更简单)方法:。
悬挂的水滴对象在
.git/lost-found/other/
中结束,并且已经是cat文件-p-ed
您确实可以找到在最后一个git add提交之前所做的所有git add。就我而言,只有一个出现了:
C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo\.git\lost-found\other>dir
Volume in drive C has no label.
Volume Serial Number is D866-48E1
Directory of C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo\.git\lost-found\other
25/01/2014 17:31 <DIR> .
25/01/2014 17:31 <DIR> ..
25/01/2014 17:31 16 873 4f76d586459ec6ffc42257bb4c61d5422051cb10
C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo\.git\lost-found\other>dir
驱动器C中的卷没有标签。
卷序列号为D866-48E1
C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo\.git\lost-found\other目录
25/01/2014 17:31 .
25/01/2014 17:31 ..
2014年1月25日17:31 16 873 4f76d586459ec6ffc42257bb4c61d5422051cb10
@BleedingFingers:谢谢@流血的人不是真的。暂存文件被添加到对象存储中,如果未提交,它们将变得不被引用。他们可能会被追回,但问题是你是否想惹上麻烦(即你的生活/工作是否取决于此)@Nevkrehnel:我们如何才能追回呢?另一种(我认为更容易)方法:git fsck——失物招领
。悬挂的水滴对象在.git/lost-found/other/
中结束,并且已经cat-file-p
-ed.@torek很好,为了更直观,我将其包含在答案中。