我想將我所有的源代碼和文檔保存在一個git存儲庫中。我已經將github頁面集成到了我的主項目中,現在我想對github wiki做同樣的事情。如何將GitHub wiki集成到主項目中
我知道github wiki是普通的git倉庫。我的計劃是將wiki添加爲我的主要回購的遠程,並將所有內容保存在一個地方。然而,在維基repo中,所有內容都位於根目錄中,因此會混亂我的主項目。
有沒有人試過這個?處理這個問題的最好方法是什麼?
我想將我所有的源代碼和文檔保存在一個git存儲庫中。我已經將github頁面集成到了我的主項目中,現在我想對github wiki做同樣的事情。如何將GitHub wiki集成到主項目中
我知道github wiki是普通的git倉庫。我的計劃是將wiki添加爲我的主要回購的遠程,並將所有內容保存在一個地方。然而,在維基repo中,所有內容都位於根目錄中,因此會混亂我的主項目。
有沒有人試過這個?處理這個問題的最好方法是什麼?
您可以創建一個submodule其中包含wiki回購或定期獲取並切換分支來回。
我覺得這非常乏味 - 在我看來,github wiki應該是主存儲庫的分支,或者至少應該可以做出這樣的選擇。
儘管如此,我認爲最好的解決辦法是簡單地移動維基到主存儲庫說,在docs/
或wiki
,使用subtree merge。例如,假設您的存儲庫爲you/proj
,則您的wiki位於:git://github.com/you/proj.wiki
。然後在你的主回購其合併,你會怎麼做:
git clone git://github.com/you/proj
cd proj
git remote add -f wiki git://github.com/you/proj.wiki
git merge -s ours --no-commit --allow-unrelated wiki/master
git read-tree --prefix=wiki/ -u wiki/master
git commit -m "Github wiki subtree merged in wiki/"
你甚至可以保留維基工作的一側,歡迎公衆捐款那裏,但隨後獸醫他們到主文檔,您認爲合適的。要合併在審覈後的新變化,你會怎麼做:
git pull -s subtree wiki master
不幸的是,合併改變了另一種方式是有點麻煩,而且不管怎麼說,你應該這樣做,因爲一次性的東西,然後關閉維基,或重定向到回購來源...
此外,這種方法的一個主要警告是git log wiki/Home.md
(例如)實際上並沒有顯示從維基頁面的歷史。歷史在那裏是,但不知何故git-log
無法跟蹤它。這是一個與git子樹相關的known limitation。解決此問題的另一個解決方案是執行filter-branch
並定期合併一次以保留歷史記錄。
對我來說,將wiki作爲主要源代碼樹的一部分的主要優勢在於,可以跨代碼和文檔協調拉取請求和更改。它也使得使用代碼運送文檔變得非常簡單,而不是假設人們只是在線閱讀它...
我去了子模塊。感謝您的答案。 –
維基作爲一個子模塊,這是怎麼回事?我想做類似的事情,但還沒有把我的頭包裹在子模塊業務中。這將如何應對分支和合並,因爲我希望我的代碼的「開發」分支與wiki相同,所以當我將它與我的主分支合併時,它也會將這些更改合併到實時wiki分支。 –
但是把它作爲子模塊有什麼意義呢?無論如何,沒有其他人可以修改或使用它。你可以在github之外的任何地方使用它嗎?我的意思是你可以把它放在一個單獨的目錄中作爲github repo,並且簡單地從main repo中將該目錄設置爲.gitignore。 – jayarjo