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

时间:2015-03-18 17:28:33

标签: git git-branch rm

我在很多分支机构工作,并将文件从一个分支(branchA)提取到当前分支(branchB)。

我使用了git checkout file.name

我想在不修改file.name的情况下从branchB中删除branchAgit rm -f file.name只会从branchB删除该文件,还是会将其从branchA中删除?

3 个答案:

答案 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将签出到您的工作树。