「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Git リモートを初めて使用する場合

Git リモートを初めて使用する場合

2024 年 11 月 8 日に公開
ブラウズ:547

First time working with Git remote

導入

今週は、特に Git リモートの操作について、Git についての理解を深めました。前提条件として、リモートを扱う場合は、Git マージに精通していることが不可欠です。先週、私は Git マージの最初の経験を共有し、いくつかのベスト プラクティスについて説明しました。今週、私はその知識を、自分自身のリポジトリではなく、共同作業者のリポジトリ、つまり友人の Mayank のリポジトリで新機能に取り組む際に適用しました。同時に、彼は私のリポジトリの機能に取り組み、Git を使用したリモート コラボレーションを実践できるようになりました。

新機能: TOML 構成のサポート

現在、私が過去数週間にわたって開発してきたツールでは、温度やモデルなどのオプションにデフォルトの値セットが使用されており、これらはユーザーが特定の引数を指定しない場合に適用されます。この新機能の目標は、ユーザーのホーム ディレクトリにある TOML ファイルから構成設定を読み取るためのサポートを追加することで、ツールの機能を拡張することでした。

たとえば、ユーザーが C:\User\Anh\config.toml に構成ファイルを持っている場合、ツールはユーザーのホーム ディレクトリに .toml ファイルが存在するかどうかを確認します。このようなファイルが存在する場合、ツールはファイルを読み取り、その値を適用してデフォルト構成を設定し、組み込みのデフォルトをオーバーライドします。ただし、ユーザーは引き続きコマンドライン引数を指定でき、これは TOML ファイルの値より優先されます。

実装

この機能を実装するために、toml パッケージを利用して TOML 構成ファイルの内容を解析しました:


import * as toml from 'toml';


このツールはユーザーのホーム ディレクトリで .toml ファイルを検索するため、Node.js の組み込み OS モジュールを使用してホーム ディレクトリのパスを取得しました。


const os = require("os");
const homeDir = os.homedir();


ユーザーのホーム ディレクトリからすべてのファイルを収集した後、それらを繰り返し処理して、.toml で終わる隠しファイル (ドット . で始まるファイル) を見つけました。最初に見つかった .toml ファイルは、ツールの構成ソースとして使用されました。

注意事項

  • このツールは、ホーム ディレクトリで、TOML 形式のデフォルト オプションを含む隠し「ドットファイル」(例: .config.toml)を検索します。
  • ファイルが見つからない場合、ツールはこれを無視し、config.js ファイル内のデフォルト設定を続行します。
  • ファイルは存在するが有効な TOML ではない場合、ツールは適切なエラー メッセージを表示して終了します。
  • TOML ファイルが存在し、その値をオーバーライドするコマンドライン引数がない場合は、TOML ファイルの設定が使用されます (デフォルト モデルなど)。
  • 下位互換性を確保するために、ツールは TOML ファイル内の認識されないオプションを無視します。

リモートコラボレーションプロセス

前述したように、今週は Git リモート ワークフローの練習と Git と Mayank のマージが含まれていました。彼のリポジトリ内の機能に取り組むために、次の手順に従いました:

  1. フォークとクローン: 彼のリポジトリをフォークして、ローカル マシンにクローン作成しました。
  2. ブランチの作成: ローカル コピーに新しいブランチを作成し、新しい機能の開発を開始しました。
  3. コミットとプッシュ: 変更を加えた後、それらをブランチにコミットし、そのブランチをフォークされたリポジトリにプッシュしました。
 git push origin 

Mayank が変更を新しいブランチにプッシュし、プル リクエスト (PR) をリクエストしたら、マージする前にコードをテストしたいと思いました。ここで git リモートが不可欠になります:

  • リモートを追加: 彼のリポジトリをリモートとしてローカル マシンに追加しました:

  git remote add  


  • コミットの取得: 彼のリポジトリから最新のコミットとブランチを取得しました:

git fetch 


  • 追跡ブランチ: 私のリポジトリに直接影響を与えずに彼の更新を追跡する追跡ブランチを作成しました:

git checkout -b  /


バグの特定と解決

テスト中に、Mayank のブランチで 2 つの重要な問題を特定しました:

  • ディレクトリの構成ミス: ツールは、ユーザーのホーム ディレクトリではなくプロジェクト ルートから TOML ファイルを誤って読み取りました。
  • パスの解決策: コードで相対ファイル パスが使用されていたため、マシンで実行するとエラーが発生しました。絶対パスに切り替えることを提案しました

// Resolve the path to the configuration file
const configPath = path.resolve(__dirname, "../.toml");

// Load configuration from config.toml
const config = loadConfig(configPath);


これらの問題を特定した後、Slack 上で Mayank と話し合い、協力して解決策を見つけました。また、彼のプル リクエストに対して直接フィードバックを提供しました。このプロセスにより、現実世界の共同プロジェクトに貢献しているように感じました。修正に満足したら、彼のブランチをメイン ブランチにマージし、リモート リポジトリにプッシュしました。

結論

Git リモートを操作してマージするこのプロセスは、非常に勉強になりました。共有コードベースでの共同作業に自信が持てるようになりました。以前は、さまざまな開発者からの複数のコミットや貢献に圧倒されることがよくありましたが、今では Git ワークフローをよりよく制御し、理解できるようになりました。

この機能に取り組み、Git リモートを統合することで、将来のプロジェクトに貴重な実践的な経験を積むことができました。

リリースステートメント この記事は、https://dev.to/anhchienvu/first-time-working-with-git-remote-5dbl?1に繰り返されます。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3