Git Repos用のテンプレート設定ファイルの使用


我々は、アプリケーションの展開で編集/変更を開発者のためのrepoに格納するためのテンプレート設定ファイルが必要です.伝統的な、あなたは.gitignoreファイル.しかし、私が説明するように.Gitignoreは、この状況に適していません.

なぜ我々は使用できません.ジティノル
我々は解決策について話す前に、なぜ我々はまず理解する必要があります.Gitignoreは我々の状況のために動作しません、そして、より重要に、いつそれを使用するのが適切でしょうか.gitignoreの主な目的.gitignoreファイルは、指定された追跡されていないファイルを無視するようにgitに指示するために使用されます.Gitは、指定されたファイルがrepoの一部でないことを効果的にふります.
これは我々の状況では動作しません.なぜなら、テンプレートがREPOに存在するように設定ファイルを追跡して維持したいからです.一方、私たちの個人的な設定のためのファイルの独自のローカルコピーを維持することができます.
状況.あなたがリモートレポ上のファイルのテンプレートコピーを維持する必要なしにローカルの設定ファイルが欲しいならば、Gitignoreは働くでしょう.この点の不利な点は、repoを使いたいと思う誰かを伝える必要があるということです.

解決法
リモートレポ上のファイルのテンプレートコピーを維持するには、使用できません.gitignoreしかし、我々はupdate-index gitに設定ファイルを扱う方法を指示します.

設定ファイルの作成
まず、設定ファイルを作成する必要があります.これは必ずしも設定ファイルである必要はありません.ローカルコピーに別のリモートコピーを使いたいファイルであれば構いません.あなたがリポジトリを初期化したと仮定して、私はリモートレポが欲しいテンプレート設定ファイルを作成することから始めます.
 {
    "config_id": "development",
    "app_name": "Example Application",
    "app_desc": "This is an application that is used as an example",
    "domain": "localhost:8080",
    "node_port": 8080,
    "host": "localhost",
    "user": "user",
    "password": "password",
    "database": "database",
    "ExampleApiKey": "API KEY"
}

テンプレート設定ファイルのコミットとプッシュ.
これで、他のファイルと同じように設定ファイルをコミットできます.
 git add config.json

 git commit -m "Added template configuration file"

 git push

設定ファイルのスキップ作業ツリーフラグの設定.
さて、設定ファイルにスキップワークツリーフラグを設定します.これはgitにパラメータで指定したファイルへの将来の変更を無視するように伝えます.
 git update-index --skip-worktree config.json
 // syntax: git update-index --skip-worktree <file>
続ける前に、このコマンドが何をしているかを正確に調べましょう.

  • 更新インデックス
    gitコマンドはgitに指定したファイルのインデックスを更新します.

  • --ワークツリーをスキップする
    このフラグはgitに指定されたファイルが常に最新であることを前提としています.たとえ変更されたとしても、これは誤ってgitにコミットすることを心配せずに、設定ファイルを自分の値で変更できる秘密です.
  • このコマンドはローカルのリポジトリにのみ影響を与えますので、変更を無視してREPOを実行する必要があります.

    設定ファイルの値を設定します.
    さて、gitは設定ファイルに対して変更を無視します.これは、テンプレートファイルが他の開発者が使用するリモートRepoに残ることを意味します.
    設定ファイルをいくつかのダミーデータで設定します.
     {
        "config_id": "development",
        "app_name": "Example Application",
        "app_desc": "This is an application that is used as an example",
        "domain": "example.com",
        "node_port": 8081,
        "host": "exampleHost",
        "user": "exampleUser",
        "password": "examplePass",
        "database": "exampleDatabase",
        "ExampleApiKey": "CF1Bmw*xr5-Example-Key-e4msRhhhF3"
     }
    
    さて、次のgitコマンドを実行します.
     git status
    
    あなたは、我々がちょうど作った変更が追跡されていないのを見ます.これは、我々が誤って我々の個人的なパスワードとAPIキーをGithubに委託する危険を走らないことを意味します.

    テンプレートの変更
    しばらくして、パブリックGitリポジトリのテンプレート設定を変更したい場合があります.Gitに設定の変更に注意を払い始めるよう指示します.JSON、単に同じコマンドを実行する必要があります.これにより、-スキップされたワークツリーフラグをトグルする.
     git update-index --skip-worktree config.json
    
    それから、私たちは、新しいテンプレート設定ファイルを作り、コミットしたい変更を自由にします.一旦テンプレートを更新したら、私たちはちょうどアップデートインデックスコマンドを実行することができます.