2012-12-15 72 views
0

我正在解決合併衝突問題(請參閱Cannot Merge due to conflict with UserInterfaceState.xcuserstate)。基於反饋,我需要使用git rm刪除UserInterfaceState.xcuserstate。如何永久刪除project.xcworkspace下的xcuserdata並解決未提交的更改

經過相當多的實驗後,我能夠使用「git rm -rf project.xcworkspace/xcuserdata」刪除文件。所以,當我在分支上工作時,它幾乎立即恢復爲需要承諾的文件。所以我再次在文件上做了git rm,然後轉回給主人。然後我再次在文件上執行了一個git rm。該操作再次刪除該文件。

但我仍然卡住。如果我嘗試將分支合併到主分支中,它再次表示我有未提交的更改。所以我會去改變。但是這一次,它將UserInterfaceState.xcuserstate顯示爲要提交的文件,但該框未被選中,並且無法檢查。所以我不能前進。我甚至無法切換回我的分支。文件UserInterfaceState.xcuserstate顯示它處於「D」狀態,這顯然意味着它已被刪除。有沒有辦法使用'git rm'永久刪除project.xcworkspace下的xcuserdata?我應該嘗試將其放回存儲庫嗎?如果是這樣,如何。

幫助!!有任何想法嗎?

UPDATE:

我貼的git的狀態結果

Changes to be committed: 
    modified: project.pbxproj 
    modified: [a list of all the files to be merged] 

Unmerged paths: 
    (use "git add/rm <file>..." as appropriate to mark resolution) 
    deleted by us: project.xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcusers‌​tate 
    both modified: ../[projectname]/en.lproj/Localizable.strings 

回答

0

如果刪除分支中的文件,爲什麼didn't你合併你的分支成高手?這應該足夠了。

我想你可能會有衝突,因爲你在兩個分支中都刪除了這個文件,這就是爲什麼你不能從一個切換到另一個:在衝突解決之前,你將無法做到這一點。要解決此文件的衝突,只需進行提交,因爲它被標記爲已刪除(D)。如果您有其他文件,請檢查是否在解決衝突時跳過任何新添加的文件。

另外,還要確保你在你的.gitignore忽略xcuserdata文件,以防止混帳從試圖再次添加到索引中有一個規則,看看這個問題:gitignore file for xcode projects

+0

但是這就是問題所在。即使它被標記爲已刪除,但旁邊的複選框未被選中,無法檢查。因此,表示提交文件的按鈕呈灰色。關於.gitignore,我在規則中有xcuserdata,* .xcuserstate和project.xcworkspace /。但它似乎沒有做任何事情。 – JeffB6688

+0

您可以將運行命令git status的結果添加到您的問題中嗎? – aag

+0

aag,我能夠運行git -commit來提交該文件。這讓我回到xcode嘗試合併。合併失敗,出現一個我未能捕獲的錯誤,但是出現「未能合併,xcode不會覆蓋...」。我認爲它指的是分支上存在的UserInterfaceState.xcuserstate是一些狀態。於是我退出合併並嘗試切換到分支。由於主分支上的未提交更改,它又失敗了。然後我看到所有要合併的文件被列爲需要提交(奇怪),包括 – JeffB6688

相關問題