web-dev-qa-db-ja.com

なぜJekyllサイトの_site-directoryを.gitignoreに置くのですか?

Jekyllのドキュメントには、Jekyllサイトの_site-directoryに、実行後に作成したサイトのコンパイル済みバージョンが含まれていると記載されています

Jekyll build

「コンパイルされたバージョンのサイトのみが含まれている」ため、.gitignore-fileに_site-directoryを含めることをいくつかの記事で推奨しています。 (それがいくつかの記事が推奨するものです。したがって、私がJekyllのいくつかの概念またはGitのいくつかの概念を理解していないかどうかはわかりません。

_site-directoryにコンパイルされたバージョンのサイトが含まれている場合、それはサーバー上にあるものであり、最終的なWebサイトを提供するものではないのですか?私はあなたがgithubにソースコードを置く理由とそれをどうするかを理解していますが、githubページの場合、Githubはバージョン管理システムではなく、ファイルホスティングシステムであり、ファイルホスティングシステムは提供する私の作業のコンパイル済みバージョンをホストする必要がありますMyUsername.github.ioを介してユーザーに送信しますか?

私の質問は、Githubにデプロイするのは、Jekyll Webサイトの_site-directoryだけではないのですか?それは、githubがユーザーに提供するコンパイル済みソースコードであるべきだからです。それで、_site-ディレクトリ以外の.gitignore-fileに何かを入れるべきではありませんか?

私がこれをすべて間違っていた場合:私のウェブサイトを経由してコンパイルすることのポイントは何ですか

Jekyll build

コンパイルされたソースコードを何にも使用しない場合

29
Otterfinger

2つのソリューション:

Jekyllプラグインを使用しない(またはそれらのみ githubページでサポートされている

ローカルでテストする必要がある場合にのみ、サイトを構築します(jekyll buildまたはjekyll serve)。生成されたコード(_site)は、githubページがソースからページを生成するため、バージョン管理されません。

  • _siteを.gitignoreに入れます
  • ソースをgithubページにプッシュする

Jekyllプラグインを使用している

この場合、Githubページはプラグインでジョブを実行できないため、ローカルでビルドする必要があります。

  • Jekyllはローカルでビルドします
  • _siteを.gitignoreに入れます
  • 1つのブランチでソースをコミットする
  • _siteを別のブランチにコミットする

詳細については、この投稿を参照してください。

20
David Jacquel

あなたが混乱している点は、ほとんどのチュートリアルが少なくともtwo異なるリポジトリについて話しているということです。

  1. あなたのサイトのsource code、これはJekyll buildを呼び出す場所です
  2. コンパイルされたresult、これは_siteディレクトリのcontentsを配置した場所です

次に、ケース1の場合は_siteを無視するのが理にかなっています。通常はコンパイル結果を無視するのと同じ理由から、ソースを変更せずにすべてのコンパイル間で変化する可能性があるため、追跡することを意図していません。何も(目に見える)変更されていなくても、ビルドごとにコミットします。

リポジトリ2の場合は、ビルド後にリポジトリ1の_siteの内容で更新する必要があります。

もちろん、_siteのコンテンツにmasterを使用して、1。と2.を組み合わせて1つのリポジトリにまとめることもできます。 sourceビルドファイルがJekyllのプロジェクトの場合、ここでは_siteを無視し、変更後の内容でmasterブランチを更新します。

3
Markus1189

_siteフォルダーがクリアされ、内部のすべてのファイルが「jekyllビルド」ごとに再生成されます。削除されるファイルの追跡は、役に立たないようです。

jekyllサイトをプロジェクトページ(gh-pages)としてgithubレポにgit pushする場合、_siteフォルダーは、ファイルのアップロード時に自動的に_siteを生成するため、githubにjekyllをインストールすると、自動的に_siteが生成されます(git押す)。

_siteフォルダーは、jekyllサイトのローカルプレビューにのみ役立ちます(通常、デフォルトではlocalhost:4000にあります)。

0
cha.j

私はあなたが物事を間違った方法で見ているかもしれないと信じています、あなたは毎回jekyll build _siteが爆発し、そこにあるすべてのものが消去されて再び書き込まれます。

ですから、私自身の意見では、githubにプッシュしたいのは作業ディレクトリです。これは、作業場所にあり、すべての変更がバージョン管理されているためです... githubのプラスがサイトのコンパイルと自動構築を行います。

そうは言っても、別のホスティングサービスにデプロイし、デプロイメントフレームワークがgithubリポジトリを取得して、_siteが必要な特定のブランチからデプロイするため、通常は_siteをgitignoreから除外しています。

0
Bunni Gek