2011-08-08 44 views
2

我已經加入忽略的文件顯示在沒有上演提交

media/ 
build/ 

in.git /信息/排除的變化,並且已刪除(GIT RM)後,這兩個目錄。我需要在exlude文件中使用這些規則,而不是.gitignore,因爲我只希望該回購可以忽略它,而不是受祝福的回購或任何其他回購。然而,運行

git status 

仍列出刪除兩個dirs的所有內容。我如何防止這種情況?

編輯

這裏是我的; github上的私人回購,我的本地安裝,一些擁有本地安裝的同事和一臺服務器。該網站是一個Django網站,因此爲了提高性能,靜態媒體文件與實際的Django安裝分開。

但是,在本地我們有Django根內的媒體文件。因此,媒體目錄也在github的祝福倉庫中。但服務器應該忽略目錄,這是我試圖通過將目錄添加到排除文件來完成的。但即使它在那裏,它似乎也不會被忽略。

adymitruk是正確的關於生成文件夾,我已經將它添加到我的一般.ignore文件。

回答

4

你說你刪除這兩個目錄 - 你也是git rm他們並提交,使他們從(未版本控制),而不是在工作目錄只是刪除了回購刪除。因爲,只要它們被版本化,git status仍將顯示對這些目錄(在這種情況下它們的刪除)的修改,而不管忽略。

+0

我試過兩種情況,並且在這兩種情況下,git狀態顯示刪除後的文件。但是,從你說的話,我明白,即使文件被忽略,它仍然可以「版本化」?比有沒有辦法實現我想要的,文件不再被忽略或版本化? –

+0

@Jasper Kennis - 你是什麼意思,你都試過兩種?你做過'git rm media /'和'git commit'那個刪除了嗎? – manojlds

+0

更準確地說,我運行了git rm -r media /和rm -rf media /。也許問題出在遞歸動作中,只有文件夾本身被忽略,而不是內容? –

1

碩士不是克隆。這是回購中的一個分支。我猜你是指一個有福的倉庫。

有很多方法來實現:

  1. 您在哪裏刪除的文件夾明確的一個分支。隨後從其他分支合併到這個文件夾將會因爲這些文件夾的更改而發生衝突。使用「我們的」選項遞歸策略。你的分支將看起來像你打算。

  2. 製作複雜的塗抹/清潔腳本。我不會走這條路。

  3. 永遠不要改變這些文件。

更大的問題是您的工作流程。有我看到的兩個問題:

  1. 您有媒體作爲存儲代碼的存儲庫的一部分。這通常涉及大文件,並且在克隆,檢出等時是很大的負擔。考慮爲該目錄使用子模塊,並且只在需要訪問媒體時填充它們。

  2. 「Build」聽起來像是aritfacts?如果它們是構建工件,則它們不屬於源代碼庫。使用您擁有的任何部署方案/工具分別進行管理。您可以隨時從源重新生成它們。依靠標記來標記構建/何時/爲什麼。

我對你的工作流程做了很多假設。但希望這會以某種方式幫助你。

乾杯

+0

你正在做出許多假設,但這可能是因爲我的信息不足。我會爲該問題添加額外的信息。 你對我的工作流程是正確的,這是項目如何成長的結果。我已經接管了這個Django站點的開發,並從svn轉到git,因爲我更喜歡git。爲了讓網站能夠在本地快速運行,我已經將媒體文件夾添加到了我的網站根目錄中,相反,我應該將它放在旁邊,但我喜歡這種方式。 這是一個商業價值vs效率vs我的胃口,儘管最終這會花費我的時間:p –