我在很多分支机构工作,并将文件从一个分支(branchA
)提取到当前分支(branchB
)。
我使用了git checkout file.name
我想在不修改file.name
的情况下从branchB中删除branchA
。 git rm -f file.name
只会从branchB
删除该文件,还是会将其从branchA中删除?
答案 0 :(得分:3)
您执行的任何git操作都将用于当前签出的分支。
所以git add,rm,commit只对当前签出的分支本身有效。
请确保您不要将提交选择到另一个分支。在这种情况下,你可能会失去它:)但不要担心你总是可以通过恢复旧的提交来恢复它。好冷,git是你最好的朋友
答案 1 :(得分:2)
它只会从当前分支中删除。如果您签出另一个分支,该文件将再次出现。
答案 2 :(得分:1)
严格来说,正在运行
git rm -f file.name
不会影响任何分支。这个命令只是
file.name
的删除(换句话说,它会在索引中写入不应再跟踪file.name
的内容。)然后,当您创建提交时,当前分支的新提示的树对象将不再引用file.name
。
由于暂存和提交仅影响当前分支,因此其他分支(如果有)不会受到此删除的影响。如果您稍后检查另一个分支(已向file.name
提交),file.name
将签出到您的工作树。