将 git rm -f <file> 从另一个分支中删除文件
Will git rm -f <file> remove the file from another branch
我在许多分支机构工作,并且已将一个文件从一个分支机构 (branchA
) 拉到当前分支机构 (branchB
)。
我用了git checkout file.name
我想在不修改 branchA
的情况下从 branchB 中删除 file.name
。 git 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
将被检出到您的工作树。
我在许多分支机构工作,并且已将一个文件从一个分支机构 (branchA
) 拉到当前分支机构 (branchB
)。
我用了git checkout file.name
我想在不修改 branchA
的情况下从 branchB 中删除 file.name
。 git 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
将被检出到您的工作树。