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
,但同样的错误不断弹出。
3条答案
按热度按时间qcuzuvrc1#
要仅使用Android Studio界面纠正此问题,请尝试以下操作:
1.为更改的文件制作备份副本,以防此方法无法正确合并更改。
1.在版本控制面板中,选择
Log
标签,它会显示一个提交列表。1.最上面的提交应该是最新的一个,右击它,在上下文菜单中选择
Checkout Revision
。1.如果出现对话框,选择
Smart Checkout
。这会将您的更改与所选提交合并。1.你的HEAD现在应该被附加了,所以你现在可以正常提交了。
xlpyo6sf2#
当您的HEAD被分离时,意味着您执行了以下命令行操作:
创建的灰色文件夹称为子模块,当你在另一个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项目所在的文件夹,然后执行以下操作:
1.将备份的代码与当前代码进行比较,并进行所需的更改(如果有)
1.提交新代码
ttvkxqim3#
由于
justjava
文件夹原来是一个子模块,在超级目录中,我按照@fusiongate的建议调用了git rm -rf --cached justjava
,并在this question中应答。这是因为它允许文件被添加和提交,但是这个文件的提交历史记录丢失了。