gpt4 book ai didi

git - git reset 文件和 git checkout 文件有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 00:53:37 27 4
gpt4 key购买 nike

为什么 git 允许我重置文件?我以为我理解了 reset,因为它正在移动 HEAD ...显然我错了。

所以,git reset sha file 似乎和 git checkout sha file 做的一样,除了我在索引和工作目录中。

这对我来说没有意义。有人可以解释一下区别吗?

最佳答案

tl;dr git reset COMMIT FILE 仅更改索引,git checkout COMMIT FILE 将同时更改索引和工作树。

git reset--soft--hard--mixed 非常重要的标记( and --keep and --merge )

http://git-scm.com/docs/git-reset

--mixed 是默认值,当您执行 git reset sha file 时,您正在执行 mixed reset 从而:

--mixed

Resets the index but not the working tree (i.e., the changed files are preserved but not marked for commit) and reports what has not been updated. This is the default action.

如上所说,这种情况下的重置根本不会触及您的工作树,只有索引中的版本会重置为 sha 中的版本。

git checkout 另一方面:

When or --patch are given, git checkout does not switch branches. It updates the named paths in the working tree from the index file or from a named (most often a commit).

所以当你执行 git checkout 时,你将丢失文件中的更改,它将被 sha 文件版本中的任何内容替换,而当你执行混合重置时,只有您的索引将被重置,您的工作目录仍将有更改,您可以在以后根据需要再次进行更改。

关于git - git reset 文件和 git checkout 文件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6918837/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com