将 git rm -f <file> 从另一个分支中删除文件

Will git rm -f <file> remove the file from another branch

我在许多分支机构工作,并且已将一个文件从一个分支机构 (branchA) 拉到当前分支机构 (branchB)。

我用了git checkout file.name

我想在不修改 branchA 的情况下从 branchB 中删除 file.namegit rm -f file.name 会仅从 branchB 中删除文件还是也会从 branchA 中删除文件?

只会从当前分支中移除。如果您签出另一个分支,该文件将再次出现。

您所做的任何 git 操作都将针对当前签出的分支本身。

所以gitadd,rm,commit只会对当前检出分支本身有效。

只需确保您没有将提交挑选到另一个分支中。在那种情况下,你可能会丢失它 :) 但别担心,你总是可以通过恢复到旧的提交来找回它。 So chill, git 是你最好的朋友

严格来说,运行

git rm -f file.name

不影响 任何 分支。这个命令只是

  • 从您的工作树中删除文件,并且
  • 分阶段删除 file.name(换句话说,它在索引中写道,不应再跟踪 file.name。)

那么,当你创建一个提交时,当前分支的新提示的树对象将不再引用file.name

而且因为暂存和提交只影响当前分支,其他分支(如果有的话)不会受到此次删除的影响。如果您稍后检查另一个分支(file.name 已提交),file.name 将被检出到您的工作树。