android 尽管删除了git子模块,但仍出现“detached HEAD”错误

byqmnocz  于 2023-01-28  发布在  Android
关注(0)|答案(3)|浏览(195)

Git似乎在跟踪java文件夹,但我无法提交对特定文件MainActivity.java的修改,我得到一个“Changes not stage for commit”的提示。
另外,我无法进入Github中的文件夹。
第一节第一节第一节第一节第一次


该文件夹不可单击。

**编辑:**当我在命令行中执行git status时,我得到

user:JustJava juil$ git status
HEAD detached at 93ea9a1
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)

        modified:   app/src/main/java/com/example/android/justjava (modified content)

no changes added to commit (use "git add" and/or "git commit -a")

**编辑2:**我已经按照一些人的建议 checkout 了最新的提交,但仍然得到了分离头错误。

**编辑3:**我尝试添加文件本身w/git add,但得到一个错误,目录是一个子模块。

JustJava juil$ git add app/src/main/java/com/example/android/justjava/MainActivity.java
fatal: Pathspec 'app/src/main/java/com/example/android/justjava/MainActivity.java' is in submodule 'app/src/main/java/com/example/android/justjava'

我尝试运行git submodule status,但出现错误

fatal: no submodule mapping found in .gitmodules for path 'app/src/main/java/com/example/android/justjava'

我试着删除子模块中的.git,但同样的错误不断弹出。

qcuzuvrc

qcuzuvrc1#

要仅使用Android Studio界面纠正此问题,请尝试以下操作:
1.为更改的文件制作备份副本,以防此方法无法正确合并更改。
1.在版本控制面板中,选择Log标签,它会显示一个提交列表。
1.最上面的提交应该是最新的一个,右击它,在上下文菜单中选择Checkout Revision
1.如果出现对话框,选择Smart Checkout。这会将您的更改与所选提交合并。
1.你的HEAD现在应该被附加了,所以你现在可以正常提交了。

xlpyo6sf

xlpyo6sf2#

当您的HEAD被分离时,意味着您执行了以下命令行操作:

git checkout <UUID of previous commit>

创建的灰色文件夹称为子模块,当你在另一个git仓库中初始化一个git仓库时,会出现这种情况。我建议删除JustJava/app/src/main/java/com/example/android/justjava中的.git文件夹。
使用git through terminal,请按照以下步骤操作:
1.将所有代码备份到不同的文件夹中
1.删除Java/应用程序/源代码/main/java/com/示例/安卓/Java/.git”
1.
checkout 主分支或您所在的当前分支(默认值:主程序)**
要 checkout master,请通过终端(linux或mac)或git bash(如果你在windows上)进入git项目所在的文件夹,然后执行以下操作:

git checkout master

1.将备份的代码与当前代码进行比较,并进行所需的更改(如果有)
1.提交新代码

ttvkxqim

ttvkxqim3#

由于justjava文件夹原来是一个子模块,在超级目录中,我按照@fusiongate的建议调用了git rm -rf --cached justjava,并在this question中应答。
这是因为它允许文件被添加和提交,但是这个文件的提交历史记录丢失了。

相关问题