gpt4 book ai didi

Git add 和 git commit 混淆

转载 作者:行者123 更新时间:2023-12-03 15:02:23 24 4
gpt4 key购买 nike

我基本知道了git add的区别这意味着“我想将此文件添加到我的下一个快照”和 git commit这意味着“拍摄快照”。
但是,当我运行 git add file1 时然后删除 file1从我的工作目录,然后运行 ​​git commit它仍然有效。不知何故,快照是在添加时而不是在提交时拍摄的。我对吗?

最佳答案

事实上,你所知道的东西中缺少一些东西。
添加该文件后,您实际上拥有该文件的两个副本。您有工作树副本,这是您使用普通文本编辑器等查看和编辑的普通文件系统副本。
但是,另外你在索引中有一个副本。 git add将文件及其内容从工作树复制到索引中。这是制作该特定文件的实际快照的地方。
当您之后发出 git commit ,索引存储到提交中。在这一点上,工作树(又名磁盘上)中有或没有什么是无关紧要的。指数才是最重要的。
这就是为什么您会看到仍在添加文件的原因。它被复制到索引 git add ,即使您随后将其从磁盘中删除,git commit使用索引作为提交的来源。
拥有一个单独的索引来组成下一次提交的结果是,您可以决定下一次提交将包含什么,而不是“目前我磁盘上的所有内容”。好的 git 工具甚至可以让你将文件的一部分更改复制到索引中,这样如果你对一个文件进行了 2 个或多个更改,你就可以决定对该单个文件的所有更改是进入下一次提交还是只进行一次提交或其中几个。

关于Git add 和 git commit 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65054498/

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