将每个文件重置为HEAD,但stage git中的文件除外
假设将每个文件重置为HEAD,但stage git中的文件除外,git,reset,head,stage,Git,Reset,Head,Stage,假设foo.c已暂存,bar.c已修改但未暂存。是否有一种方法可以获取每个非暂存文件(在本例中为bar.c),并在不退出暂存的情况下将其重置回HEAD 我知道提交不会书写酒吧历史上的变化,我只是想避免提交,因为我正在构建一个脚本 是的,您可以git签出项目文件夹中的每个文件。这不会影响任何暂存文件 git结帐 ,你已经接受了,它通常是正确的,符合你的意愿。不过,值得注意的是一些细节 请记住,就git状态而言,每个文件都有三个活动副本: foo.c存在于HEAD(HEAD:foo.c)、索引/暂
foo.c
已暂存,bar.c
已修改但未暂存。是否有一种方法可以获取每个非暂存文件(在本例中为bar.c
),并在不退出暂存的情况下将其重置回HEAD
我知道提交不会书写酒吧历史上的变化,我只是想避免提交,因为我正在构建一个脚本 是的,您可以git签出项目文件夹中的每个文件。这不会影响任何暂存文件 git结帐 ,你已经接受了,它通常是正确的,符合你的意愿。不过,值得注意的是一些细节 请记住,就git状态而言,每个文件都有三个活动副本:
存在于HEAD(foo.c
)、索引/暂存区域(HEAD:foo.c
)和工作树(:0:foo.c
)中foo.c
存在于HEAD(bar.c
)、索引/暂存区域(HEAD:bar.c
)和工作树(:0:bar.c
)中bar.c
foo.c
已暂存,bar.c
已修改但未暂存
用Git术语来说,您的意思是:
!=<代码>:0:foo.c,但标题:foo.c
=:0:foo.c
foo.c
=标题:bar.c
,但是:0:bar.c
!=<代码>条形图c:0:bar.c
git add-p
获得这一点。如果您运行了git add-p bar.c
,并选择了一些(但不是全部)补丁,那么您最终将处于这种状态
当您运行git status
时,git first diffHEAD
-vs index,并在提交时报告任何不同的更改。然后,它将索引与工作树区分开来,并报告任何不同之处,因为更改不是为了提交而进行的(并且可能还报告未跟踪的文件)
运行:
git checkout <path>
告诉Git将文件的头
版本复制到索引中。这样就只剩下工作树了。您可以自己计算出这对:0:foo.c
和:0:bar.c
的影响
git reset <path>