You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Git VCS如何从索引删除文件?Android Studio提交失败求助

1. 如何在Git VCS中从索引里删除文件?

Git的索引(也就是常说的暂存区)是用来筹备下次提交内容的中间环节,根据你的实际需求,可以分两种场景处理:

  • 如果文件已经在Git仓库中,想从索引移除但保留本地文件
    用这条命令,它只会把文件从索引中移除,不会删除你本地的文件:

    git rm --cached <文件名>
    

    举个例子,要移除app/src/main/java/com/LoginFragment.java就运行:

    git rm --cached app/src/main/java/com/LoginFragment.java
    
  • 如果文件还没提交到仓库,只是刚被暂存(比如用git add添加的),想取消暂存
    用这条命令撤销暂存操作:

    git reset HEAD <文件名>
    

    要是想一次性取消所有暂存的文件,直接用:

    git reset HEAD .
    
2. 解决Android Studio 3.1.1提交报错问题

你遇到的这个报错,核心原因是Git在Windows、macOS这类系统上默认不区分文件名大小写。所以LoginFragment.javaLogInFragment.java在Git眼里是同一个文件,索引里已经存在其中一个,现在你试图添加另一个自然会冲突。

给你一套具体的解决步骤:

  1. 先清理索引里的冲突文件
    先把索引里的那个重复文件移除,用之前提到的命令:

    git rm --cached app/src/main/java/com/LogInFragment.java
    # 如果你要保留的是LogInFragment,就换成对应的文件名
    
  2. 开启Git的大小写敏感性
    运行这条命令让Git区分文件名大小写(当前仓库生效):

    git config core.ignorecase false
    

    要是想让所有仓库都生效,加上--global参数:

    git config --global core.ignorecase false
    
  3. 重新提交正确的文件
    确认本地文件的大小写是你想要的状态,然后重新添加到索引并提交:

    git add app/src/main/java/com/LoginFragment.java
    git commit -m "修复文件名大小写问题并提交"
    

另外在Android Studio里操作的话,你也可以通过Git > Repository > Reset HEAD...来取消暂存冲突文件,调整好文件名后再重新提交,效果和命令行是一致的。

内容的提问来源于stack exchange,提问作者Sia

火山引擎 最新活动