2012-08-31 53 views
3

我有這個在我的的.gitignore文件:無法切換分支 - 「錯誤:未跟蹤工作樹文件...」我應該做git add?

/nbproject/ 
/app/runtime/ 
/app/runtime/application.log* 
/app/runtime/error.log* 
/app/config/localdev.php* 
.DS_Store 

1) 我結帳主分支,然後再結賬,回Dev分支

2) 一旦我回到Dev分支,我失去了所有/ nbproject文件/文件和所有/app/config/localdev.php以及! 也許其他人,但因爲它們是由php框架uppon運行時自動生成的,所以我無法確定!

3) 然後我切換回主分支,我在那裏得到那些文件。

4) 我已經將這些文件複製到其他地方,並且我已經切換到dev分支了。

5) 我把那些丟失的文件放回到/ nbproject /文件夾中。現在

,如果我嘗試切換到主分支,我得到這個:

Error: The following untracked working tree files would be overwritten by checkout:  
    nbproject/private/config.properties  
    nbproject/private/private.properties  
    nbproject/private/private.xml  
    nbproject/project.properties  
    nbproject/project.xml 

    Please move or remove them before you can switch branches. 

    Aborting 

我知道,也許我應該做一個git add .移動在庫這些文件,我沒有得到的是:

爲什麼git trowing這個消息如果我有nbproject /忽略這些git checkout命令發出之前?

問題:

問題是忽略這些文件。在master和dev上。我的問題是:我如何解決這個問題是爲了:

a)第一個: 獲取這些文件(在gitignore上的)回到開發?

b)第二個: 制定步驟以避免再次發生此衝突。

+1

的問題是,'master'的顯然是那些跟蹤文件,而不是忽視他們,而'dev'無視他們,而不是他們的跟蹤。最好的行動方案取決於兩種模式中哪一種對您的項目是「正確的」 - 要麼跟蹤文件要麼忽略它們。試圖在不同的分支上做這兩件事情會導致這些問題。 – twalberg

回答

2

解決問題的步驟。 學分轉到:jszakmeister

1)我已經克隆了一個項目到別的地方。

2)我已經在該克隆上籤出了master。

3)放在gitignore到主,因爲它本來應該從一開始就: git的節目開發:的.gitignore>的.gitignore

4)我已經從刪除的文件樹通過做git rm「在gitignore上的所有文件一個接一個」

5)我已經將.gitignore文件添加到回購。

6)提交它

7)開關返回到原始回購和做的:

8) GIT中獲取/路徑/到/修復項目主:大師

9) git checkout master,我得到: 切換到分支'主' 您的分支在'hub/master'通過1承諾。 這是我的遠程主分支。

10)推到遠程主人。

11)結賬開發再次

5

您可以在其他分支中跟蹤它們。或者,您可以將--force添加到checkout命令中,以使用任何主站所擁有的文件將文件打包。或者,您可以在檢出主服務器前將git clean -xdf從工作目錄中刪除文件。

+0

那些在gitignore上的文件,在我的開發分支上消失了。我需要讓他們回到主從。但我無法結帳主人。所以,爲了不把所有的主文件都放在dev上,而只有那些在gitignore – MEM

+0

上我不明白文件是什麼意思的文件,應該輸入什麼命令。所以我不能按照你的回答。請,我已經更新了我的問題。你能否澄清你的答案? – MEM

+0

'git clean -xdf'可能會刪除您想要的文件。嘗試使用'git clean -fdxn'來首先檢查將要刪除的內容。 – sfotiadis

相關問題