我決定開始爲我的C++項目使用Git版本控制系統。我不熟悉版本控制。對於主幹來說很簡單,我只提交我擁有的所有項目版本。我將每個版本保存爲一個單獨的文件夾,因爲我知道我很快就會使用Git。但是我遇到了我的分支機構的問題。這些輔助文件應該在Git版本控制下嗎?
在開發的某個階段,我決定在分支中開發一個類。沒有版本控制,我不得不使用make「手動」分支。我將該類的最新頭文件和源文件複製到單獨的文件夾並開始在那裏工作。我在那裏做了幾個版本來同時工作。一個版本是根據計劃(爲此我製作「分支」)的班級的第一個原型。然後我添加了另一個文件,其中我複製了第一個文件,但刪除了似乎沒有必要的東西。這樣我有兩個版本,一個是我的所有想法和功能,另一個是我在代碼中真正使用的版本,沒有什麼目前沒有使用。
但後來我增加了更多。隨着發展的繼續,我決定將這個類作爲模板是個好主意。所以我添加了第三個版本,就像第二個版本,但現在使用多態性實現的一些功能是使用模板實現的。而且我還不能確定哪個版本是最好的,因爲現在說得還爲時過早,所以我想把所有3個都放在一起。
然後我做了另一個特殊文件:第三個版本頭文件的副本,其中每行可以標記或不標記。標記意味着我使用該特定方法,或者我確定它很快就會被使用,否則該行不會被標記。
然後,過了一段時間,我開始了一個新的分支。對於那個分支,我需要在第一個分支中開發的那個類的新版本。所以我只是將其中一個版本複製到新分支的文件夾並開始在那裏工作。現在我又有了一些輔助文件:我有兩個文件,一個用於刪除我使用的類方法,另一個用於編寫我需要的新方法。
現在我想開始使用Git,我想知道:對於所有項目的文本文件,計劃,圖表等,它很明顯 - 我把它們放在Git倉庫之外。每當需要協作編輯時,我都可以創建一個wiki或類似的東西。但是對於同一個頭文件的所有副本以及那些輔助的「標記」文件,我該怎麼處理它們?我的意思是,我把它們全部放在一個分支中是沒問題的,但是當我將一個分支合併到分支時會發生什麼?我不想擁有所有這些副本,版本和列表,只是我製作的最後一個類文件。
一方面,這些是編碼時使用的C++源文件。另一方面,它們不是軟件包的純源代碼的一部分,它們只是在我工作時幫助我,但永遠不會被編譯,因爲最終只有我選擇合併的類的最終版本,並且所有其他輔助文件,列表等僅供參考。
什麼是最好的事情? 感謝您閱讀我長的故事:)
編輯:這是我的個人電腦
爲什麼不在回購計劃等?如果是,那麼找到正確的版本會更容易。至於你的其他問題,我不太清楚你想要什麼,但你可以通過使用不同的合併策略來改變合併作品的方式。如果他們有任何幫助,我會檢查「我們的」和「他們的」。您也可以將這些東西放在單獨的回購中,並將其作爲子項目或其他東西包含在內。 – Makis
其實,我的意思是合併但排除一些文件。我找到了一個很好的解決方案:每次我合併之前,先做一個最後的「乾淨」的提交,並附上一條消息,說明我準備好了合併分支,然後在所有aux文件不存在的情況下合併分支 – cfa45ca55111016ee9269f0a52e771
如果你只想忽略這些文件,在根文件夾中嘗試一個.gitignore文件。 – Makis