GitHubでホストしたいjekyllサイトがあります。jekyllプラグインはGitHubでサポートされていないため、母校のブランチに_site内のファイルのみを含め、他のすべてを含む開発ブランチを作成したいと考えていました。
これは可能でしょうか?もしそうなら、どうすればそれを行うことができますか?私はgitが得意ではありません。
ありがとう
必要なのは、開発ブランチとマスターブランチを用意することだけのようです。このブランチには、_siteなどのフォルダーのコンテンツのミラーが含まれます。
これをやろう!わかった。_site
「エクスポート」するすべてのスタッフとフォルダーを含む開発ブランチを持つリポジトリがあると仮定します。
フォルダのコンテンツのみを含むコミットを作成しましょう。_site
echo 'Fill with a meaningful description' | git commit-tree development^{tree}:_site
コミットを作成し、そのIDを出力します。でした47651a42...
。お使いのマシンによって異なります。
これは、ブランチの最後のコミットのルートにdevelopment^{tree}:_site
あるフォルダーに対応するツリーのリビジョン(sha1 sum)であることに注意してください。_site
development
そして、マスターブランチがこのコミットを指すようにします。
git update-ref refs/heads/master 47651a42
今git log master
、私のマシンで以下を表示します
commit 47651a42e6800f399c4352d0416f4ca96895f099
Author: Aleksandr Priymak <aleksandr.priymak@gmail.com>
Date: Fri Jul 27 05:27:43 2012 +0400
first commit
このブランチをチェックアウトすると、_siteフォルダーのコンテンツが表示されます。それは簡単です。残っているのは1つだけです。47651a42
commitには親がないため、更新されたマスターをプッシュするには、コマンドに-f
追加する必要があります。git push
もう1つの方法は、実際に親を指定することです。これを行うには、このコマンドを使用します
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))