我是一個研究生,有許多腳本,bibtex中的參考書目數據,latex中的論文草稿,open office中的演示文稿,scribus中的海報以及數字和結果數據。我想在版本控制下將所有內容放在一個項目中。然後,當我需要處理諸如參考書目數據等部分時,我想檢查該子目錄,根據需要對其進行修改並將其合併回去。我希望能夠檢出一個版本到我的家用計算機,以及與我的工作計算機不同,並獨立進行更改,最終將其合併回來。我還希望能夠從這個大型項目中檢出一段代碼,並將其與版本導入到一個單獨的項目中。如果我可能改變,我希望能夠將它們合併回原始項目。Git子樹在做部分克隆時沒有正確使用.gitignore
基於我的理解Git子樹可以做到這一點。
http://github.com/apenwarr/git-subtree
有是沿着什麼,我試圖做的線爲例:
http://psionides.jogger.pl/2010/02/04/sharing-code-between-projects-with-git-subtree/
說我的項目的主幹包含的目錄:(BIB斌cfg data fig src todo)。
當我使用
git subtree split -P bib -b export
git checkout export
我得到一個圍脖目錄,加上是應該被忽略的或考慮二進制基於的.gitignore,如它在結束src目錄和一切所有文件代字號或./data目錄。
[email protected]:~/research/trunk$ ls * -r
biblography.bib JabRef
src:
script1.sh~ README~ script2.sh~
script3.sh~ script4.R~ script5.awk~
script5.py~
cfg:
cfgFile1.ini~ cfgFile2.ini~ cfgFile3.ini~
bin:
bigBinaryPackage1 bigBinaryPackage2
[email protected]:~/research/trunk$
我的.gitignore文件如下:
*.doc diff=word
*.tex diff=tex
*.bib diff=bibtex
*.py diff=python
*.eps binary
*.jpg binary
*.png binary
./bin/* binary
*~
如何避免這種情況?
您是否使用子模塊查看過?他們是專爲這種事情設計的,而且更自動化一些...... – Cascabel 2010-03-23 21:41:18
感謝您的評論。據推測,Subtree具有很多優點: http://apenwarr.ca/log/?m=200904#30 – 2010-03-23 21:48:08
@D W:這很公平 - 子模塊遠非完美。只是想確保它在那裏作爲一個選項。 – Cascabel 2010-03-23 21:54:15