1

マスターのディレクトリからブランチのルートにファイルを自動的にコピーするフックをgitリポジトリに追加することは可能ですか?

理由は次のとおりです。

GitHubページを使用してプロジェクトドキュメントを公開したいと思います。残念ながら、GitHubは、サイトのコンテンツが「gh_pages」という名前のブランチにあると主張しています。これの問題は、ドキュメントを書きたいときはいつでもブランチを切り替える必要があるため、コーディングと書き込みを同時に行うことができないことです。また、.projectファイルがないため、gh_pagesブランチに切り替えると、Eclipseが異常終了し、プロジェクト全体が閉じます。

より良い方法は、マスターブランチの/gh_pagesサブディレクトリにサイトコンテンツを保存することです。そこでいくつかのマークダウンページを編集し、コミットしてプッシュし、サイトを自動的に更新する必要があるとしたら、とてもすばらしいでしょう。

可能?

4

1 に答える 1

2

はい。プロジェクト内にフォルダーを追加して、それ自体のサブモジュールとして使用できます。サブモジュールをgh_pagesブランチにポイントします。さらに、2つの間にバージョン管理されたリンクがあります。

手順は次のとおりです。

git submodule add docs git+ssh://github.com/yourid/yourproject.git
git submodule init
git submodule update
cd docs
git checkout gh_pages
cd -
git add -A
git commit -m "added docs submodule"

ドキュメントを更新するときは、これを実行してください

cd docs && git add -A && git push && cd - 

私はこれをわざわざスクリプト化する必要はありません。押しCTRL-Rて入力docsすると、すぐに表示されます。Enterキーを押すと、準備完了です。

実行git statusすると、変更が加えられたフォルダがあることがわかりますdocs。通常どおりに追加してコミットします。

他の人が同期を維持したい場合は、コマンドを発行する必要があります

git submodule update

ドキュメントを更新する必要があるかどうかを確認するには、

git submodule

サブモジュールが最新であるか、初期化されていないかが表示されます。最新で初期化されている場合は、リストされる前にマーカーは表示されません。それ以外の場合は、トップレベルのリポジトリが現在のコミットに登録したバージョンの後ろまたは前にあるかどうかに応じて、+または前になります。-

詳細については、progit.org / bookの第6章、セクション6を参照してください。

于 2012-10-29T21:22:59.680 に答える