我正在與一個C++項目Code::Blocks
。我注意到有一些*.layout
文件和*.dependent
文件。我應該忽略.gitignore規則中的* .layout和* .dependent嗎?
我應該將它們添加到.gitignore
嗎?
編輯:
我也最有把握的,我可以/應該忽略*.layout
文件。但*.dependent
怎麼樣?
我正在與一個C++項目Code::Blocks
。我注意到有一些*.layout
文件和*.dependent
文件。我應該忽略.gitignore規則中的* .layout和* .dependent嗎?
我應該將它們添加到.gitignore
嗎?
編輯:
我也最有把握的,我可以/應該忽略*.layout
文件。但*.dependent
怎麼樣?
一般來說,是文件生成,無論是爲了您的方便或構建過程的過程中,應始終被排除與忽略規則。實際的問題是在哪裏把這些無視規則,的Git讓你在這裏兩個選項:
不要添加特定於你的工作環境,以.gitignore
規則。對於這樣的忽略規則來說更好的地方是.git/info/exclude
,它對於你的倉庫克隆來說是本地的,但是其他的工作就像.gitignore
一樣。
就你而言,有問題的文件是針對團隊中沒有人使用的IDE。忽略規則(例如*.layout
)對其他開發人員來說可能沒有意義,並將其混淆。因此,最好將這些排除項保留爲您的存儲庫克隆。
但是,獨立於各個開發人員工具而出現在工作副本中的文件應通過.gitignore
排除;一個例子就是典型的編譯器文物,如.o
文件。
保持.gitignore
爲他人清理,不要把你自己的具體規則放在那裏。很明顯,如果你的團隊中的每個人都使用Code :: Blocks,那麼排除*.layout
文件.gitignore
(每個人都需要這個規則,而且這個規則不太可能會讓人困惑)是可以的。
最後,在版本控制下保留IDE的某些元信息是有意義的;例如.project
文件Eclipse使用– 如果這些在開發者機器之間是可移植的,並且只有每個人都希望從同一個.project
文件保存和恢復。這真的是你們團隊討論的問題。
這比「硬性規定」更像是一種「風格建議」。
它只是取決於你是否要提交這些文件。如果你沒有git add
他們,並且不打算,你應該將它們添加到你的.gitignore
,因爲它會對你更方便。
要知道你是否應該提交這些文件,你應該知道你的開發環境如何工作。如前所述,您的IDE生成的大多數文件都不應該被提交。但情況並非總是如此。例如,當你在Eclipse中創建一個新項目時,它會生成一個.classpath
,並且將這個文件添加到git中相當方便。
如果你不確定,如果你確實需要你可以一個特定的文件:
git clone myProject myTemporaryClone
)如果你沒有,例如,提交.classpath
,eclipse會抱怨它找不到克隆中的解決方案。因此,你會明白你錯過了一些東西。另一方面,如果你可以像這個克隆一樣工作,你可能會犯下你需要的一切。因此,您可以使用.gitignore
初始回購的其他文件。
似乎.layout只包含您在編輯器中打開的源選項卡的名稱和位置。
我做了一個實驗。刪除然後重新打開IDE,它以沒有打開的文件開始但沒有問題,所以我認爲忽略它是安全的。
此外,因爲只是你的特定工作狀態的信息,而不是源相關的,你應該應該忽略它。
由您的構建系統生成的文件應該幾乎總是在'.gitignore'中。要知道這些文件是否由您的構建系統生成,以及它們的用途,請參閱構建系統的手冊。 – pmr