我有一個我想在GitHub上託管的jekyll網站。由於在GitHub上不支持jekyll插件,所以我希望讓我的mater分支只包含_site內的文件並創建一個包含其他所有內容的開發分支。是否有可能在我的本地機器上有兩個分支包含不同目錄的GitHub倉庫?
這可能嗎?如果是這樣,我該怎麼辦?我不是最好的混帳。
感謝
我有一個我想在GitHub上託管的jekyll網站。由於在GitHub上不支持jekyll插件,所以我希望讓我的mater分支只包含_site內的文件並創建一個包含其他所有內容的開發分支。是否有可能在我的本地機器上有兩個分支包含不同目錄的GitHub倉庫?
這可能嗎?如果是這樣,我該怎麼辦?我不是最好的混帳。
感謝
似乎所有你想要的是有一個發展分支和主支路將包含一些文件夾的內容的一面鏡子,說_site。
讓我們來做這個! 好的。我認爲你有一個開發分支的存儲庫,其中包含你想要「導出」的所有員工和_site
文件夾。
讓我們創建一個提交,其中只包含文件夾的內容。
echo 'Fill with a meaningful description' | git commit-tree development^{tree}:_site
創建提交併輸出其ID。這是47651a42...
。它將不同在您的機器上。
請注意,development^{tree}:_site
是對應於development
分支上最後一次提交的根的_site
文件夾的樹的修訂(sha1總和)。
現在讓主分支點這個承諾: git update-ref refs/heads/master 47651a42
現在git log master
顯示我的機器上的以下
commit 47651a42e6800f399c4352d0416f4ca96895f099
Author: Aleksandr Priymak <[email protected]>
Date: Fri Jul 27 05:27:43 2012 +0400
first commit
如果您籤這個分支你得到_site文件夾的內容!這很簡單。只剩下一件事了。 47651a42
提交沒有任何父母,因此您需要將-f
添加到您的git push
命令以推送更新的主文件。另一種方法是實際指定父項。要使用下面的一行做到這一點,使用這個命令
echo 'Fill with a meaningful description' | git commit-tree dev^{tree}:_site -p $(cat .git/refs/heads/master)
你可以做到這一點
git update-ref refs/heads/master $(echo 'Add commit message here!' | git commit-tree dev^{tree}:_site -p $(cat .git/refs/heads/master))
我也與此類似,除了我不想居然有_site在主回購我只是想要的內容,當我跑'git add _site/*'我想我會得到,但它實際上添加_site以及它的內容。 在_site裏面有兩個git repos一個,而在.usernamename.github.com目錄裏面有一個.gitignore _site會更簡單嗎? – edhedges 2012-07-27 01:02:40
是的,它會更簡單,但是除非您使用子模塊,否則您將失去基於_site生成的數據的信息。 – 2012-07-27 01:11:49
對不起,但我不明白你在說什麼。你什麼意思? – edhedges 2012-07-27 01:16:48