9

GitHubでホストしたいjekyllサイトがあります。jekyllプラグインはGitHubでサポートされていないため、母校のブランチに_site内のファイルのみを含め、他のすべてを含む開発ブランチを作成したいと考えていました。

これは可能でしょうか?もしそうなら、どうすればそれを行うことができますか?私はgitが得意ではありません。

ありがとう

4

1 に答える 1

10

必要なのは、開発ブランチとマスターブランチを用意することだけのようです。このブランチには、_siteなどのフォルダーのコンテンツのミラーが含まれます。

これをやろう!わかった。_site「エクスポート」するすべてのスタッフとフォルダーを含む開発ブランチを持つリポジトリがあると仮定します。

フォルダのコンテンツのみを含むコミットを作成しましょう。_site

echo 'Fill with a meaningful description' | git commit-tree development^{tree}:_siteコミットを作成し、そのIDを出力します。でした47651a42...お使いのマシンによって異なります。

これは、ブランチの最後のコミットのルートにdevelopment^{tree}:_siteあるフォルダーに対応するツリーのリビジョン(sha1 sum)であることに注意してください。_sitedevelopment

そして、マスターブランチがこのコミットを指すようにします。 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つだけです。47651a42commitには親がないため、更新されたマスターをプッシュするには、コマンドに-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))
于 2012-07-27T00:37:52.730 に答える