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

什么时候应该使用rm、git rm、git rm--cached、git add,git,Git,我正在学习git,但我对暂存和提交文件的不同方式感到困惑。为了解决这个问题,我使用了目录的隐喻:工作目录、暂存目录、提交目录 如果我rm从我的工作目录中删除一个文件,它只会从我的工作目录中删除它。对吗 如果我git rm从我的工作目录中删除一个文件,它会将其从所有目录中删除 三个目录。对吗 如果我git rm--cached一个文件,它将从我的文件中删除该文件 和提交目录,但将其保留在我的工作目录中 如果我已更新、添加和删除我工作中的文件 目录,并执行git add.,然后git status

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

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

如果您能帮助我们更好地理解这些概念,我们将不胜感激-谢谢

调整对暂存区域(也称为索引或缓存)和
--cached
选项的理解。美国

使用此选项可以取消分级并仅从索引中删除路径。无论是否修改,工作树文件都将被单独保留

把你的清单写下来

  • rm文件
    -仅从工作目录中删除文件
  • git rm
    -从工作目录和临时区域中删除文件,但还不是历史记录的一部分(存储库,“提交目录”)
  • git rm--cached
    -从暂存区域中删除,但不删除工作目录或历史记录
  • git add.
    在存在修改、新文件和已删除文件的情况下,git将在缓存中记录修改和新的未识别文件。(对于某些选项,其行为会有所不同。)
各种git命令的
--cached
选项使它们对索引或至少对索引进行操作

git add
git rm
将工作目录更改为索引或缓存。将这些命令视为一次提交一个片段来构建下一个提交

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

大多数情况下,您需要的是一个简单的序列
git rm file
,然后是
git commit
,以便在历史记录的当前点停止跟踪文件

--cached