gpt4 book ai didi

git - 什么时候应该使用 rm, git rm, git rm --cached, git add

转载 作者:IT王子 更新时间:2023-10-29 00:58:47 45 4
gpt4 key购买 nike

我正在学习 git,但我对暂存和提交文件的不同方式感到困惑。为了解决这个问题,我使用了目录的比喻:工作目录、暂存目录、提交目录。

  • 如果我rm 我的工作目录中的一个文件,它只会 从我的工作目录中删除它。对吗?
  • 如果我从我的工作目录git rm 一个文件,它会把它从所有三个目录。正确吗?
  • 如果我 git rm --cached 一个文件,它会从我的暂存中删除该文件并提交目录,但将其留在我的工作目录中?
  • 如果我更新、添加和删除了我工作中的文件目录,然后执行 git add .,然后 git status 显示已暂存的文件已添加、删除和更新。当我提交时会发生什么?是从 Commit 目录中删除的删除文件?如果我回滚到稍后提交,那些删除的文件会重新出现吗?

任何有助于更好地理解这些概念的帮助将不胜感激 - 谢谢!

最佳答案

调整您对暂存区(也称为索引或缓存)和 --cached 选项的理解。 documentation for git rm

--cached

Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.

运行你的列表给出

  • rm file — 仅从工作目录中删除文件
  • git rm — 从工作目录和暂存区中删除文件,但还不是历史的一部分(存储库,“提交目录”)
  • git rm --cached — 从暂存区中删除,但既不删除工作目录也不删除历史
  • git add . 在存在修改、新文件和删除文件的情况下 — git 将在缓存中记录修改和新的未忽略文件。 (git add 对某些选项会有不同的表现。)

各种 git 命令的 --cached 选项使它们对索引或至少相对于索引进行操作。

git addgit rm 从工作目录到索引或缓存进行更改。将这些命令想象成一次构建您的下一个提交。

对索引中的内容感到满意后,使用 git commit 将更改从索引移动到存储库。

大多数时候,您需要的是 git rm file 后跟 git commit 的简单序列,以在当前停止跟踪 file指向您的历史。

关于git - 什么时候应该使用 rm, git rm, git rm --cached, git add,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37279654/

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