|
詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したHarmonyOSテクノロジーコミュニティ。 https://ost..com コミュニティ内のリポジトリの中には非常に大きなものがあり、ダウンロードに非常に時間がかかります。この記事では、スパースチェックアウト、つまり必要なフォルダやファイルのみをチェックアウトする方法について具体的に説明します。この記事は「2022年もオープンソースの友であり続ける」シリーズに収録されます。 1. スパース検出とは何ですか?Gitリポジトリが非常に大きい場合、Gitコマンドの実行に非常に長い時間がかかることがあります。これらの問題に対処するため、Gitバージョン1.7.0以降ではスパースチェックアウトが導入されました。スパースチェックアウトを使用すると、指定したディレクトリまたはファイルのみをチェックアウトできるため、大規模なリポジトリでのGitコマンドの実行時間が大幅に短縮されます。指定したディレクトリまたはファイルのみをチェックアウトするには、`.git/info/sparse-checkout`ファイルでそのディレクトリまたはファイルへのパスを指定する必要があります。 次のデモンストレーションでは、https://gitee.com/openharmony/docs などのリポジトリ内のいくつかのフォルダーをすばやくチェックアウトする方法を示します。 2. Gitのスパース検出を設定する`docs` というディレクトリを作成し、Git リポジトリを初期化して、`https://gitee.com/openharmony/docs` リポジトリからスパースチェックアウトを使用していくつかのフォルダをチェックアウトします。新しく作成したディレクトリに移動し、`git config core.sparseCheckout true` コマンドを使用して Git のスパースチェックアウトモードを有効にします。以下の画像をご覧ください。 mkdir ドキュメント 次に、リポジトリディレクトリ内の `.git/info/sparse-checkout` ファイルを編集して、チェックアウトルールを指定します。`.git/info/sparse-checkout` の `.gitignore` と同じマッチングパターンを使用します。例えば、`!/dir2/*` と `/*.java` はマッチングしません。ここでは、`https://gitee.com/openharmony-sig/online_event` リポジトリ内の `/zh-cn/device-dev/kernel` フォルダのみがチェックアウトされ、ローカルリポジトリとリモートリポジトリがリンクされます。 echo zh - cn / device - dev / kernel >> . git / info / sparse - checkout 3. 検出コードコードをチェックアウトするコマンドを続けて実行すると、チェックアウト結果が図のように表示されます。実際には、指定したディレクトリのみがチェックアウトされていることがわかります。 git pull origin マスター 4.スパース検出を無効にするすべてのファイルを取得する方法を見てみましょう。以下のコマンドを実行しました。結果は画像に示されています。 echo "/*" > .git / info / sparse - チェックアウト スパースチェックアウトを完全に無効にするには、Git の core.sparseCheckout を false に設定し、.git/info/sparse-checkout ファイルを削除します。 5. `git sparse-checkout`コマンドGitの新しいバージョンでは、`git sparse-checkout`を直接使用してスパースチェックアウトを設定できます。Gitの最新バージョンのダウンロードアドレスはhttps://git-scm.com/downloadsです。`git sparse-checkout`コマンドについてはここでは詳しく説明しません。実際に試してみることですぐに使いこなせるでしょう。コマンドと実行結果は以下の通りです。 mkdir my - ドキュメント 付録 - 参考文献: https://git-scm.com/docs/git-sparse-checkout を参照してください。 詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したHarmonyOSテクノロジーコミュニティ。 https://ost..com |