我想用git來控制某些文件的版本控制,但是我無法弄清楚我的情況。讓我先設置問題,然後解釋我在解決方案中失敗的嘗試:將git用於多個單獨項目,其文件共享一個公共目錄
我使用名爲CodeV的光學設計程序,它是基於命令行的。我用編程語言編寫自定義宏(CodeV中的「序列文件」)。這些文件用於分析/設計光學系統,因此它們應該可用於CodeV的每個實例。我將所有自定義宏都放在一個目錄中。要從CodeV運行它們,我只需在CodeV的命令行中鍵入run filename.seq
,因爲我已將CUSTOM_MACROS
目錄添加到我在CodeV中的序列文件搜索路徑中。簡單。
這是一個非常詳細的說法,我在一個目錄中有很多可能不相關的文件。
現在,這些文件正在進行中,我想和我的同事一起使用GitHub來處理它們。所以,在我CUSTOM_MACROS
目錄,我可能有這樣的:
macro1.seq
macro2.seq
...
sharedmacro3.seq
sharedmacro4.seq
我希望每個文件的獨立版本控制,我認爲,這意味着在GitHub上獨立的回購協議。我如何在本地實現Git來實現這一目標?
我曾嘗試使用一個回購在CUSTOM_MACROS
和添加的所有文件,然後用樹枝爲每個特定的文件:
git add -A
git commit -am 'Add all of the files'
git checkout -b sharedmacro3
做出一些改變
git commit -am 'Changed some stuff in sharedmacro3.seq'
git checkout master
git merge sharedmacro3
這是好的,但現在如果我想創建一個新的宏,我添加該文件,併爲該項目創建一個新的分支,但它從其他文件提交繼承歷史。我不想要這種行爲,我只想要該文件/項目的提交歷史記錄。
什麼是更好的方式去做這件事?我想要什麼?
然後,當我想將這個回購庫添加到GitHub中時,它包含了我所有的自定義宏,所以當他只想要sharemacro3時,我的同事就把所有文件都拉進去了。
我可能錯過了一些基本的東西,因爲我對Git比較陌生。如果是這樣,請將我指向資源,以便我可以學習。有很多類似的問題,但沒有一個真正符合我的具體使用案例。
重申:如何使用git來跟蹤其文件位於同一目錄中的多個項目,然後使用GitHub與同事共享這些項目?
謝謝你的時間。
感謝您的回覆。子目錄將用於允許單獨的回購。但是我確實需要父目錄中的所有文件,因爲將這些路徑添加到CodeV的搜索路徑很麻煩(並且存在50個搜索路徑的硬限制,上帝只知道爲什麼)。 一種解決方案是將父目錄中的符號鏈接添加到子目錄中的實際文件中。 (或者相反,我猜)。另一個是將每個repo的core.worktree設置爲父目錄('CUSTOM_MACROS')。 – ScheissSchiesser 2014-12-08 15:38:57
這很快變得醜陋:-)。如果您想使用子目錄,則可以使用腳本在引入更改後將它們複製到父目錄 - 但是,當您在本地進行更改時,這又會成爲問題。具有所有宏的單個回購確實聽起來像是您的最佳選擇 - 也許將它與某種命名約定結合起來,以便您可以快速識別文件的內容和上下文。 – nwinkler 2014-12-08 15:42:55