2016-06-15 76 views
1

Git似乎在跟蹤java文件夾,但我無法提交對特定文件MainActivity.java的更改。我得到一個「更改沒有提交提交」 差異顯示更改,但我不能提交它。AndroidStudio沒有將MainActivity.java提交給Github

此外,我無法進入Github中的文件夾。

Project structure Commit error

Github structure 該文件夾無法點擊。

編輯:當我在命令行做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:我已簽出的最新提交的一些建議,但仍然得到分離的頭的錯誤。

Current git log

編輯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,但同樣的錯誤不斷彈出。

+0

你處於分離狀態。在命令行中運行'git status'併發布結果 –

+0

我已經將git status的輸出放在問題中,但它仍然不能解釋爲什麼我無法訪問Github上的文件。 – juil

+0

嘗試:'git stash','git checkout master','git stash pop'。然後,您可以提交您的更改並繼續在master上工作 –

回答

0

要糾正此只使用了Android Studio界面,請嘗試以下操作:

  1. 讓你修改過的文件進行備份,以防萬一這種方法並不正確合併更改。
  2. 在版本控制窗格中,選擇Log選項卡。它會顯示提交列表。
  3. 最上面的提交應該是最新的提交。右鍵單擊它並在上下文菜單中選擇Checkout Revision
  4. 如果出現對話框,請選擇Smart Checkout。這會將您的更改與選定的提交合並。
  5. 你的HEAD現在應該被連接,所以你現在可以正常提交。
+0

我試過了,它沒有做任何事情。我用我當前的git日誌的截圖更新了這個問題。 – juil

+0

它看起來像MainActivity.java從未實際添加到git。試着做'git add app/src/main/java/com/example/android/justjava/MainActivity.java' – Fusiongate

+0

試過了但得到了一個子模塊錯誤。在問題中更新。 – juil

0

當你的頭分離,就意味着你做的命令行等價的:

git checkout <UUID of previous commit> 

已創建被稱爲子模塊灰色的文件夾,當你初始化另一個混帳內一個Git倉庫它發生庫。我建議刪除JustJava/app/src/main/java/com/example/android/justjava中的.git文件夾。

通過終端使用GIT,執行以下步驟:

  1. 備份所有的代碼在不同的文件夾

  2. **刪除JustJava /應用/ SRC /主/ JAVA/COM /例如/安卓/ justjava/git的」

  3. 結帳出的主或當前分支你(默認:主)

    爲了結帳高手,轉到文件夾,您Git項目是通過終端(Linux或Mac)或git bash(如果你在Windows上),然後執行:

    git checkout master 
    
  4. 已備份的比較了當前的代碼代碼,讓你想要的變化(如果有的話)
  5. 提交新代碼
+0

我試過檢查出主人,但仍然得到了與我最新編輯中對我的問題所述的相同錯誤。 – juil

0

由於justjava文件夾竟然是在超級目錄中,我稱爲git rm -rf --cached justjava,正如@fusiongate建議的那樣

這樣做的目的是允許添加和提交文件,但是此文件上的提交歷史記錄丟失。