2012-07-26 48 views

回答

10

似乎所有你想要的是有一個發展分支和主支路將包含一些文件夾的內容的一面鏡子,說_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)) 
+0

我也與此類似,除了我不想居然有_site在主回購我只是想要的內容,當我跑'git add _site/*'我想我會得到,但它實際上添加_site以及它的內容。 在_site裏面有兩個git repos一個,而在.usernamename.github.com目錄裏面有一個.gitignore _site會更簡單嗎? – edhedges 2012-07-27 01:02:40

+1

是的,它會更簡單,但是除非您使用子模塊,否則您將失去基於_site生成的數據的信息。 – 2012-07-27 01:11:49

+0

對不起,但我不明白你在說什麼。你什麼意思? – edhedges 2012-07-27 01:16:48

相關問題