2013-02-22 45 views
0

在Xcode 4.6下,git狀態以非常不穩定的方式工作。下面是一個例子一個新的新鮮後提交(例如,在終端「混帳地位」表示沒有變動):Xcode 4.6中不穩定的git狀態 - 手動刷新「已修改」和「未更改」之間的交替狀態

  1. 我修改一個文件,所以出現「M」旁邊的側欄。
  2. 我去「文件 - >源代碼管理 - >刷新狀態」,然後「M」消失!
  3. 我轉到「文件 - >源代碼管理 - >刷新狀態」,然後再次出現「M」!

根據需要重複步驟2或3。一直刷新「M」和「no-M」之間的替代方案。什麼可能造成這種情況?有什麼可以想到的嗎?

我可以通過某種方式進行調試來跟蹤可能發生的情況嗎?

我已經嘗試刪除整個DerivedData,清除組織者中的存儲庫,並重新啓動Xcode,但沒有任何幫助。

+0

我無法在我的Xcode中找到這樣的現象。但是,如果修改後的文件只是添加空間或其他東西就可能發生。 Git可以在一定程度上找到代碼的含義。 – akiniwa 2013-02-22 09:59:33

+0

@akiniwa,但這並不能解釋奇怪的M和無M交替行爲... – user2015453 2013-02-22 10:28:11

+0

這是一個本地git嗎?你將它存儲在DropBox或類似的東西嗎? – Spectravideo328 2013-02-22 11:48:54

回答

0

事實證明,就我而言,這個問題與我將倉庫中的很多文件從「CamelCase」更名爲「小寫」的事實有關,包括我的項目文件和文件夾。這肯定是以某種方式不適當地跟蹤的。

默認情況下,OS X使用不區分大小寫的文件系統,而git內部區分大小寫,我相信問題與此有關。

這些是我用來解決這個問題的步驟。如果您認爲您的問題可能是由於更改了文件名的情況,這也可能對您有所幫助。

  1. 轉到您的存儲庫的根目錄,並刪除一切從它除了使用「LS -la」 .git的文件夾(查看所有隱藏文件太)和「RM」 /「室射頻「命令。
  2. 做一個「git reset --hard」來獲取你所有的文件。您現在可能會看到您的文件名已更改。就我而言,在我的工作副本的根目錄中,「myapp.xcodeproj」和「myapp」(包含所有代碼文件的文件夾)已更改爲「MyApp.xcodeproj」和「MyApp」(文件夾)。我認爲我已經將它改爲小寫,但顯然,這沒有被git正確跟蹤。
  3. 現在,將您的文件重命名爲無關的文件。例如,我將「MyApp.xcodeproj」更名爲「foo.xcodeproj」,「MyApp」更名爲「foo」。
  4. 然後做「git add --all」
  5. 現在,將您的文件重命名爲您想要的。我將「foo.xcodeproj」改名爲「myapp.xcodeproj」,「foo」改名爲「myapp」,這就是我想讓它開始的原因(以及我認爲我已經完成的)。
  6. 做另一個「git add --all」。
  7. 提交。

現在你的生活應該會更好,Xcode應該表現良好,因爲git現在看到了與Xcode項目完全相同的文件(與完全相同的情況)。

0

發生了類似的事情,我繼續提交,然後「M」消失,幾秒鐘後,它再次出現,如果我再次提交,它允許我再次提交,但所有文件顯示爲零變化。然後M消失並再次出現。

我發現解決這個問題的唯一方法是奇怪地在代碼中插入註釋然後提交。 M應該消失。