2014-05-24 79 views
1

我正在與一個C++項目Code::Blocks。我注意到有一些*.layout文件和*.dependent文件。我應該忽略.gitignore規則中的* .layout和* .dependent嗎?

我應該將它們添加到.gitignore嗎?

編輯:

我也最有把握的,我可以/應該忽略*.layout文件。但*.dependent怎麼樣?

+3

由您的構建系統生成的文件應該幾乎總是在'.gitignore'中。要知道這些文件是否由您的構建系統生成,以及它們的用途,請參閱構建系統的手冊。 – pmr

回答

1

一般來說,是文件生成,無論是爲了您的方便或構建過程的過程中,應始終排除與忽略規則。實際的問題是在哪裏把這些無視規則,的Git讓你在這裏兩個選項:

不要添加特定於你的工作環境,以.gitignore規則。對於這樣的忽略規則來說更好的地方是.git/info/exclude,它對於你的倉庫克隆來說是本地的,但是其他的工作就像.gitignore一樣。

就你而言,有問題的文件是針對團隊中沒有人使用的IDE。忽略規則(例如*.layout)對其他開發人員來說可能沒有意義,並將其混淆。因此,最好將這些排除項保留爲您的存儲庫克隆。

但是,獨立於各個開發人員工具而出現在工作副本中的文件應通過.gitignore排除;一個例子就是典型的編譯器文物,如.o文件。

保持.gitignore爲他人清理,不要把你自己的具體規則放在那裏。很明顯,如果你的團隊中的每個人都使用Code :: Blocks,那麼排除*.layout文件.gitignore(每個人都需要這個規則,而且這個規則不太可能會讓人困惑)是可以的。

最後,在版本控制下保留IDE的某些元信息是有意義的;例如.project文件Eclipse使用– 如果這些在開發者機器之間是可移植的,並且只有每個人都希望從同一個.project文件保存和恢復。這真的是你們團隊討論的問題。

這比「硬性規定」更像是一種「風格建議」。

0

它只是取決於你是否要提交這些文件。如果你沒有git add他們,並且不打算,你應該將它們添加到你的.gitignore,因爲它會對你更方便。

要知道你是否應該提交這些文件,你應該知道你的開發環境如何工作。如前所述,您的IDE生成的大多數文件都不應該被提交。但情況並非總是如此。例如,當你在Eclipse中創建一個新項目時,它會生成一個.classpath,並且將這個文件添加到git中相當方便。

如果你不確定,如果你確實需要你可以一個特定的文件:

  • 提交你的項目沒有此文件
  • 克隆的回購本地(git clone myProject myTemporaryClone
  • 嘗試使用這個克隆工作

如果你沒有,例如,提交.classpath,eclipse會抱怨它找不到克隆中的解決方案。因此,你會明白你錯過了一些東西。另一方面,如果你可以像這個克隆一樣工作,你可能會犯下你需要的一切。因此,您可以使用.gitignore初始回購的其他文件。

0

似乎.layout只包含您在編輯器中打開的源選項卡的名稱和位置。

我做了一個實驗。刪除然後重新打開IDE,它以沒有打開的文件開始但沒有問題,所以我認爲忽略它是安全的。

此外,因爲只是你的特定工作狀態的信息,而不是源相關的,你應該應該忽略它。