gpt4 book ai didi

git-checkout - git checkout 会更新所有文件吗?

转载 作者:太空狗 更新时间:2023-10-29 13:23:18 31 4
gpt4 key购买 nike

新手问题,我想确保我理解这一点。

当我 git checkout <revision> ,这会将整个项目返回到当时的状态,还是仅重新创建在该特定修订版中更改的文件?

例如:如果我的文件夹除了 .git 存储库之外完全是空的,并且我 git checkout master ,生成的文件是整个项目,还是只是最近一次提交中更改的文件?

我问,因为我在不同的时间点(从头开始)检查我的项目,而不是项目的大小像人们预期的那样缓慢增长,每次检查的大小变化很大。

最佳答案

When I git checkout <revision>, does this return the entire project to its state at that moment, or does it only recreate the files changed in that particular revision?

如果您的工作树暂存区完全是空的(当然除了.git子目录)并且您运行

git checkout <revision>

那么您的工作树和暂存区将完美地反射(reflect)该特定修订版的内容。

另一方面,如果运行 git checkout 时工作树不为空, 发生的事情要微妙得多,可以分为三种情况:

  1. checkout 没有问题,Git 毫不犹豫地执行了它:该特定修订版的内容被复制到您的工作树(并在需要时覆盖那里已经存在的内容)。或者
  2. 如果执行 checkout ,将导致本地更改丢失;因此,Git(假设您没有使用 -f 标志)告诉您关闭并中止 checkout 。或者
  3. 可能会出现更复杂的情况,其中内容仅被部分 check out ,并且一些本地的、未提交的更改保留在您的工作树和/或索引中。有关该情况的更多详细信息,请参阅我对 Why are unstaged changes still present after checking out a different branch? 的回答。 .

[...] the size of each checkout is varying quite a lot.

您是否考虑了未跟踪的文件?您是否提交,然后删除大文件?仅根据您问题中提供的信息,我们只能假设尺寸变化很大的原因。

关于git-checkout - git checkout 会更新所有文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26214691/

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