2011-03-03 25 views
9

我有一些文件/文件夾不會離開Git臨時區域?修改後的文件出現在Git中但未更新的問題?

# On branch master 
# Changed but not updated: 
# (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: JavaScript/Stand.ard.iz.er (modified content, untracked content) 
# modified: Site (untracked content) 
# modified: Template Archives/Template (modified content, untracked content) 
# modified: Template Archives/Template_Git (modified content, untracked content) 
# 

我試過所有這些'修改'文件提交但沒有運氣?

我試過......

git add . 
git add * 
git add -u 
git add {actual full directory path} 

...但沒有它的工作原理。

任何想法?

謝謝。

回答

13

那些可能是子模塊,在這種情況下,他們的狀態將顯示從父回購的狀態。

除非,那就是,你用--ignore-submodules[=<when>]選項git status

尋找變化時忽略更改子模塊。
<when>可以是「none」,「untracked」,「dirty」或「all」,這是默認值。

  • 使用「none」將考慮修改的子模塊時,它要麼含有未跟蹤或修改的文件或其HEAD不同於提交記錄在上層項目和可用於覆蓋git-config忽略選項的任何設置或gitmodules
  • 當使用「untracked」時,如果子模塊僅包含未跟蹤內容(但它們仍在掃描修改的內容),則不認爲它們是髒的。
  • 使用「dirty」將忽略對子模塊工作樹的所有更改,只顯示存儲在超級項目中的提交更改(這是1.7.0之前的行爲)。
  • 使用「all」隱藏了所有的變化,以子模塊(和抑制子模塊摘要的輸出,當config option status.submodulesummary被設定)。

在任何情況下,你需要能夠去上一級(在父回購級)之前從子模塊本身內部添加並提交,並看到乾淨的狀態。

+0

因此,如果他們繼續顯示爲已修改,我如何清除我的回購中的「修改內容」? – Trip 2011-05-21 01:33:24

+1

@Trip:通過進入該子模塊,執行'git add。* * there *,commit,然後回到父回購:'git status'將顯示一個乾淨的狀態。 – VonC 2011-05-21 04:57:56

+1

@Vonc我按照你的指示,現在父母的git狀態顯示'bundle/supertab(new commits)'。如果我只是回去,我發現'git status'不顯示修改的內容,但是如果我嘗試提交,我仍然可以看到'modified:bundle/supertab(修改的內容)'。你知道我可以擺脫嗎? – 2011-10-20 00:00:10

11

如果你已經將一些新的文件夾複製到你的項目裏面已經有一個.git文件夾,這可能會發生。所以它會像主存儲庫中的子存儲庫一樣。解決辦法就是刪除新複製的子文件夾中的.git文件夾。

+0

除了在刪除.git文件夾之後,此文件夾中所做的任何更改都不會由父回購庫進行跟蹤。至少這就是我在使用git v1.8.3.1的方式。 – 2015-07-24 17:41:57

+1

您還需要執行'git rm --cached submodule_path#delete reference to submodule HEAD(no trailing slash)'來忘掉這個子模塊。 – 2015-07-24 17:48:14

+0

@ZoltanFedor非常感謝。 – Mina 2016-01-09 12:05:08

相關問題