Git をローカルで操作する方法を説明する

完了

Git と継続的デリバリーは、おいしいチョコレートとピーナッツ バターの組み合わせのようなものです。 ソフトウェアの世界では、組み合わせるとおいしい 2 つの素晴らしい味が見つかることがあります。

ソフトウェアの継続的デリバリーには、かなりのレベルの自動化が必要です。 高品質なコードベースがなければ、継続的に配信するのは困難です。

Git には、コードベースの品質を担当する構成要素が用意されています。 これにより、コードベースのチェックのほとんどを自動化できます。 また、これは、コードをリポジトリにコミットする前に機能します。

Git の有効性を十分に理解するには、まず、Git での基本的な操作方法を理解する必要があります。 たとえば、クローン、コミット、プッシュ、プルなどです。

Git の使用をどのようにして始めたらよいかというのは、当然の質問です。

1 つのオプションは、コマンド ラインを使用してネイティブに行くか、Git をネイティブでサポートするコード エディターを探します。

Visual Studio Code は、数百もの言語に強力な開発者ツールを提供する、クロスプラットフォームのオープンソース コード エディターです。

オープン ソースで作業するには、オープンソース ツールを利用する必要があります。

最初の手順は次のとおりです。

  • Visual Studio Code を使用して開発環境を構成する。
  • 新しい Git リポジトリを作成する。
  • コード変更をローカルでコミットする。
  • 変更を Azure DevOps 上のリモート リポジトリにプッシュする。

開発の準備

このチュートリアルでは、Git リポジトリをローカルで初期化する方法について学びます。

次に、ASP.NET Core MVC プロジェクト テンプレートを使用して、新しいプロジェクトを作成し、ローカル Git リポジトリでバージョン管理します。

次に、Visual Studio Code を使用して Git リポジトリと対話し、基本的なコミット、プル、プッシュの各操作を実行します。

以下を使用して作業環境を設定する必要があります。

Visual Studio Marketplace には、Visual Studio Code 用の次のような拡張機能がいくつか用意されていて、これらをインストールすることで、Git の使用経験を強化できます。

  • Git Lens: この拡張機能は、Git blame アノテーションとコード レンズを使用して、コード履歴の視覚化を提供します。 この拡張機能を使用すると、ファイルまたはブランチの履歴をシームレスに移動して探索できます。 また、この拡張機能を使用すると、強力な比較コマンドなどによって貴重な分析情報を得ることができます。
  • Git 履歴: Git ログ、ファイル履歴を表示し、ブランチまたはコミットを比較する視覚化と対話機能が提供されます。

方法

  1. コマンド プロンプトを開き、新しい作業フォルダーを作成します。

    mkdir myWebApp
    cd myWebApp
    
    
  2. myWebApp で、新しい Git リポジトリを初期化します。

    git init
    
    
  3. この Git リポジトリにコミットするときに使用する名前とメール アドレスのグローバル設定を構成します。

    git config --global user.name "John Doe"
    git config --global user.email "john.doe@contoso.com"
    
    

    エンタープライズ プロキシの背後で作業している場合は、Git グローバル構成ファイルにプロキシの詳細を追加することで、Git リポジトリをプロキシ対応にできます。 このコマンドの別のバリエーションを使うと、(ユーザー名/パスワードを使って) HTTP/HTTPS プロキシを設定し、必要に応じて SSL 検証をバイパスできます。 次のコマンドを実行して、グローバル Git 構成でプロキシを構成します。

    git config --global http.proxy
    http://proxyUsername:proxyPassword@proxy.server.com:port
    
    
  4. 新しい ASP.NET Core アプリを作成します。 新しいコマンドは、言語、認証、フレームワークの選択に使用できるスイッチのコレクションを提供します。 詳細については、Microsoft Learn を参照してください。

    dotnet new mvc
    
    

    現在の作業フォルダーのコンテキストで、Visual Studio Code を起動します。

    code .
    
    
  5. プロジェクトが Visual Studio Code で開くときに、[ビルドおよびデバッグに必要な資産が 'myWebApp' で見つかりません。追加しますか?] という警告メッセージに対して [はい] を選択します。 [未解決の依存関係があります] 情報メッセージに対して [復元] を選択します。 F5 キーを押してアプリケーションをデバッグすると、次のスクリーンショットに示すように、myWebApp がブラウザーに読み込まれます。

    Visual Studio Code から起動した Web アプリのスクリーンショット。

    コマンド ラインを使用する場合は、Git リポジトリのコンテキストで次のコマンドを実行して、Web アプリケーションを実行できます。

    dotnet build
    dotnet run
    
    

    ".VS Code" フォルダーが作業フォルダーに追加されていることがわかります。 このフォルダーを Git リポジトリにコミットしないようにするには、.gitignore ファイルに含める必要があります。 ".VS Code" フォルダーからファイルを選択し、F1 キーを押して Visual Studio Code でコマンド ウィンドウを起動し、「gitIgnore」と入力します。そして、選択したファイルを新しい . gitIgnore ファイルに含めるオプションを受け入れます。

    .gitignore アクションへのファイルの追加のスクリーンショット。

    .gitignore を開き、パスからファイル名を削除し、フォルダーにスラッシュを付けたままにします (たとえば、.VS Code/*)。

    .gitignore アクションへの vscode フォルダーの追加のスクリーンショット。

  6. 新しく作成した myWebApp プロジェクトを Visual Studio Code から Git リポジトリにステージしてコミットするには、左側のパネルの Git アイコンに移動します。 コミット コメントを追加し、チェックマーク アイコンをクリックして変更をコミットします。 変更のステージとコミットを 1 つの操作で行います。

    VS Code を使ったコミットのスクリーンショット。

    Program.cs を開きます。Git レンズによって、クラスと関数がコミット履歴で装飾され、この情報がすべてのコード行にインラインで表示されます。

    クラス装飾を示す Program.cs コードのスクリーンショット。

  7. 次に、git リポジトリのコンテキストで cmd を起動し、git branch --list を実行します。 現在このリポジトリに存在する main ブランチだけが表示されます。 次のコマンドを実行して、feature-devops-home-page という名前の新しいブランチを作成します。

    git branch feature-devops-home-page
    git checkout feature-devops-home-page
    git branch --list
    
    

    これらのコマンドを使用して新しいブランチを作成し、チェックアウトしました。--list キーワードを使用すると、リポジトリ内のすべてのブランチの一覧が表示されます。 緑色は、現在チェックアウトされているブランチを表します。

  8. 次に、ファイル ~\Views\Home\Index.cshtml に移動し、内容を次のテキストに置き換えます。

    @{
        ViewData["Title"] = "Home Page";
    }
    
    <div class="text-center">
        <h1 class="display-4">Welcome</h1>
        <p>Learn about <a href="https://azure.microsoft.com/services/devops/">Azure DevOps</a>.</p>
    </div>
    
    
  9. ブラウザーで Web アプリを更新して、変更を確認します。

    localhost のウェルカム ページのスクリーンショット。

  10. git リポジトリのコンテキストで、次のコマンドを実行します。 これらのコマンドは、ブランチで変更をステージしてからコミットします。

    git status
    git add .
    git commit -m "updated welcome page."
    git status
    
    
  11. feature-devops-home-page から main に変更をマージするには、git リポジトリのコンテキストで次のコマンドを実行します。

    git checkout main
    git merge feature-devops-home-page
    
    

    feature-devops-home-page マージ出力ウィンドウのスクリーンショット。

  12. 次のコマンドを実行して、機能ブランチを削除します。

    git branch --delete feature-devops-home-page
    
    

しくみ

前に実行した手順の結果を理解する最も簡単な方法は、操作の履歴を確認することです。 その方法を見てみましょう。

  1. Git では、リポジトリへの変更のコミットは 2 段階のプロセスです。 実行中: add .変更はステージされますが、コミットされません。 最後に、コミットを実行すると、ステージされた変更がリポジトリで昇格されます。

  2. メイン ブランチの変更履歴を表示するには、コマンド git log -v を実行します。

    メイン ブランチの変更の履歴のスクリーンショット。

  3. コミットの実際の変更を調査するには、 コマンド git log -p を実行します。

    ファイルの変更を含む git log -p の出力を示すコマンド ラインのスクリーンショット。

その他

Git を使用すると、変更を簡単に取り消すことができます。 この例に従って、ウェルカム ページに加えた変更を取り消す場合。

次のコマンドを使用して、メイン ブランチを以前のバージョンのコミットにハード リセットできます。

git reset --hard 5d2441f0be4f1e4ca1f8f83b56dee31251367adc

上記のコマンドを実行すると、ブランチがプロジェクトの init 変更にリセットされます。

git log -v, を実行すると、ウェルカム ページに対して行われた変更がリポジトリから削除されていることがわかります。