初めてGitを使う時の環境準備

2023年6月23日

バージョン管理ソフトウェアのGitを使ってコードの変更点管理(履歴)をしてみましょう

Gitについて

Gitとは

Gitは、ソフトウェア開発中のソースコードの変更を追跡するための分散バージョン管理システムです。これにより、複数の開発者が同じコードベースで同時に作業し、変更を追跡し、競合を解決し、コードに対するすべての変更の完全な履歴を維持できます。Gitは、オープンソースと商用ソフトウェア開発プロジェクトの両方のバージョン管理に広く使用されています。

GitHubとは

GitHubは、Gitをバージョン管理システムとして使用するバージョン管理リポジトリ用のWebベースのホスティングサービスです。開発者がソフトウェアプロジェクトを保存、共有、共同作業するためのプラットフォームを提供します。GitHubは、バグ追跡、機能要求、タスク管理、ドキュメント用のWikiなどの機能を提供しています。さらに、GitHubは、開発者がオープンソースプロジェクトを発見して貢献し、他の開発者をフォローし、自分のプロジェクトをコミュニティに紹介できるソーシャルプラットフォームです。

GitHub Desktopとは

GitHub Desktopは、Gitリポジトリを管理するためのグラフィカルユーザーインターフェイス(GUI)です。これは、GitとGitHubで作業するためのよりユーザーフレンドリーで直感的な方法を提供する、WindowsとmacOS用のデスクトップアプリケーションです。GitHub Desktopを使用すると、開発者はコマンドラインを使用せずに、リポジトリの複製、変更のコミット、リモートサーバーへのプッシュなどの一般的なGit操作を実行できます。また、マージの競合を解決し、コードの変更を確認するためのビジュアルインターフェイスを提供し、初心者と経験豊富なGitユーザーの両方にとって便利なツールです。

クラウドのGitHubでの作業

クラウドのGitHubにサインインします

次のどちらでも構いません

本国サイト

日本語サイト

https://github.co.jp

すでに登録済みの場合、サインインを選びます
まだ未登録であればサインアップを選びます

画面が変わりますので、登録時の情報でサインインします

ローカル環境で作業を進めるための事前のクラウドでの作業

リポジトリとは

Gitのリポジトリは、プロジェクトのファイルのバージョンを保存および管理するための一元化された場所です。本質的には、プロジェクトを構成するすべてのファイルとディレクトリ、および時間の経過とともにそれらのファイルに加えられたすべての変更の履歴を保持するフォルダです。リポジトリは、ローカルマシンまたはGitHubなどのリモートサーバーに保存できます。開発者は、リポジトリを自分のローカルマシンにクローンし、変更を加え、それらの変更をリポジトリに戻して、プロジェクト上の他の人と共同作業することができます。リポジトリは、プライベートまたはパブリックのいずれかで、ソースコード、ドキュメント、画像、その他のメディアなど、任意の数のファイルを含めることができます。

クローンとは

Gitでのクローニングとは、ローカルマシンにGitリポジトリのコピーを作成するプロセスを指します。リポジトリをクローニングすると、すべてのファイルのすべてのバージョンを含むリポジトリの履歴全体がローカルマシンにダウンロードされます。これにより、開発者はローカルでコードに取り組み、変更を加え、それらの変更を元のリポジトリに押し戻すことができます。クローニングは、複数の開発者が同じリポジトリをクローンし、独自のローカルコピーで作業し、変更をメインリポジトリにプッシュして他の人の仕事と統合できるため、ソフトウェアプロジェクトでの共同作業に役立ちます。

GitHub Desktop(ローカル環境でのGitビジュアル環境アプリ)を起動して、半自動で作業を進めます

ローカルのGitHub Desktopでの作業

半自動でクローンの作業

GitHub Desktopが開きますので、クローンされる場所を確認して、Cloneをクリックします

GitHub Desktop作業画面

バージョン管理のさまざまな作業を、ここで行うことができます

最初に自分のブランチに変更しておきます

ブランチとは

Gitのブランチは、リポジトリ内の別の開発ラインです。ブランチを作成することで、複数の開発者がお互いの作業に干渉することなく、プロジェクトのさまざまな側面に同時に作業できます。Gitリポジトリのデフォルトのブランチは「マスター」と呼ばれますが、開発者はさまざまな機能、バグ修正、または実験に必要なだけ多くの追加ブランチを作成できます。

変更が行われ、ブランチにコミットされると、Gitはブランチの履歴に新しい「コミット」を作成します。ブランチは、変更がメインプロジェクトに統合する準備ができたら、マスターブランチまたは別のブランチにマージできます。これにより、単一のリポジトリ内で複数の並列開発ラインのコラボレーションと管理が容易になります。

コミットとは

Commit in Gitとは、リポジトリへの変更を保存するプロセスを指します。開発者がファイルまたはファイルのセットに変更を加えると、Gitコマンドラインまたはグラフィカルユーザーインターフェイスを使用してそれらの変更をステージングします。変更がステージングされると、開発者は変更をコミットし、リポジトリの履歴に新しい「コミット」を生成できます。

Gitの各コミットには、「ハッシュ」と呼ばれる一意の識別子が割り当てられ、コミットが行われた時点でのリポジトリ全体の状態への参照が含まれています。コミットには、コミットで行われた変更を説明するメッセージも含まれており、他の開発者が何が変更されたのか、なぜ変更されたのかを理解できるようにします。コミットは、リポジトリへの変更の線形履歴を形成し、開発者は必要に応じて変更を追跡および元に戻すことができます。

フェッチとは

Gitでのフェッチとは、リモートリポジトリからローカルリポジトリに変更をダウンロードする操作を指します。開発者がリモートリポジトリから取得すると、他の開発者によってリモートリポジトリにプッシュされた新しいコミットとブランチに関する情報を取得しています。これにより、ローカルリポジトリは、それらの変更をローカルリポジトリにマージすることなく、リモートリポジトリの最新の変更を最新の状態に保つことができます。

リモートリポジトリから変更を取得することは、いくつかの点で役立ちます。たとえば、開発者は、自分の作業にマージする前に他の人によって行われた変更を確認したり、ローカルリポジトリをリモートリポジトリと比較して何が変更されたかを確認できます。リモートリポジトリから変更を取得することも、「プル」操作を実行する前に必要なステップであり、変更を取得し、自動的にローカルリポジトリにマージします。

クローンしたソリューションの起動

フォルダからソリューションファイルをダブルクリック

VisialStudioを使って、ソリューションを開く方法は、いくつかありますが、今回は、ソリューションファイルをダブルクリックする方法で起動します

その他のソリューション起動方法

Visual Studioでソリューションを選択して起動する方法はいくつかあります。

  • Visual Studioを開き、スタートページで「プロジェクト/ソリューションを開く」をクリックします。これにより、開くソリューションファイル(*.sln)を選択できるファイルエクスプローラが開きます。
  • ファイルメニューから、「開く」>「プロジェクト/ソリューション」を選択します。これにより、開くソリューションファイルを選択できるファイルエクスプローラも開きます。
  • ファイルメニューの「最近開いた項目」オプションを使用して、最近取り組んだソリューションをすばやく開きます。
  • デスクトップまたはソリューションファイルへのショートカットを作成します。

コードの更新後の簡単な処理

Gitの仕組みとGitHub Desktopの関係

ソリューションフォルダは、作業中のフォルダになります
ChangesタブとHistoryタブは、GitHub Desktopの作業画面の左側タブになります

コードの更新作業(新規作成、追加、変更、削除)

コードを更新(追加、削除も含みます)

特定の作業でコードを更新したら保存します

GitHub Desktopでの作業

作業画面を確認します
更新されたところがビジュアルで表示されていますので、確認します
キャプチャーの画面では、最後にCommit to [ブランチ名]をクリックします

コミット後は、History(履歴)が残ります
GitHubクラウドへアップロードするには、Pushoriginをクリックします

プッシュとは

Push in Gitとは、ローカルリポジトリからリモートリポジトリに変更をアップロードする操作を指します。開発者がファイルまたはファイルのセットに変更を加えると、それらの変更をローカルリポジトリにコミットします。その後、これらの変更をリモートリポジトリにプッシュし、他の開発者が利用できるようにすることができます。

リモートリポジトリに変更をプッシュすることは、Gitを使用してソフトウェアプロジェクトで共同作業するための重要なステップです。変更を共有リモートリポジトリにプッシュすることで、開発者は自分の作業を他の人と共有し、変更を他の開発者が行った変更とマージすることができます。また、変更をプッシュすると、プロジェクトのバックアップがリモートリポジトリに保存され、ローカルマシンの障害が発生した場合のデータ損失に対する保護も保証されます。

プッシュ作業の注意点

変更がGitのリモートリポジトリにプッシュされると、直接変更または削除することはできません。これは、Gitのプッシュが永続的であると見なされ、コミットを追加または変更するとリポジトリの履歴に矛盾が生じるためです。

ただし、「強制プッシュ」やGitの「rebase」コマンドを使用して履歴を「書き換える」など、リモートリポジトリの履歴を変更する方法があります。これらのアクションは、競合を引き起こし、他の開発者がリポジトリで作業することを困難にする可能性があるため、慎重に実行する必要があります。さらに、リモートリポジトリの履歴を書き換えると、コミットのハッシュが変更され、リポジトリの現在の状態につながったイベントのシーケンスを理解することが困難になるため、他の共同作業者にとって混乱を招く可能性があります。

プルとは

Gitの「Pull」とは、リモートリポジトリから変更をダウンロードし、それらの変更をローカルリポジトリに統合する操作を指します。プル操作は、リモートリポジトリから変更を取得し、それらの変更をローカルリポジトリにマージするプロセスを組み合わせたものです。

開発者がプルを実行すると、リモートリポジトリ内の他の開発者が行った最新の変更でローカルリポジトリを更新しています。これにより、ローカルリポジトリをプロジェクトを最新の状態に保ち、最新バージョンのコードを持っていることを確認できます。

プル操作は、「git pull」コマンドを使用したコマンドラインや、GitHub DesktopやGitKrakenなどのグラフィカルユーザーインターフェイス(GUI)など、いくつかの方法で開始できます。プル操作は、望ましい結果に応じて、特定のブランチまたはすべてのブランチで実行できます。

ローカルリポジトリの変更がリモートリポジトリの変更と競合する場合、プル操作でマージの競合が発生する可能性があることに注意することが重要です。この場合、変更を正常にプルしてマージする前に、開発者は競合を解決する必要があります。

フェッチするか、時間の経過によってプルできるデータがあることがわかります
クリックするとローカル環境をGitHub(クラウド)の情報で更新できます

ローカルで同じファイルをコミットされている状態の場合の注意

同じファイルを更新している場合、競合してしまいますので、自身が更新しているファイルの更新を元に戻す等の作業が必要になります

エラーメッセージ内容

unable to pull when changes are present on your branch. The following files would be over written.
README.md
自分のブランチに変更がある場合、pullできない。以下のファイルが上書きされます。
README.md

変更作業を元に戻す

コミット(履歴情報の追加)を無かったことにする

変更作業自体を無かったことにする

上記作業に引き続き、Discard(破棄)作業をすることによって、一連の更新作業自体を無かったことにし、変更作業前に戻すことができます

GitHubを使った共同開発で、招待を受ける(同じリポジトリで作業する)場合

招待した管理者からメールが届きます

XXX さんから、共同でXXXXのリポジトリに招待されています。

この招待を受けるか断ることができます。また、XXXを訪問して、彼らについてもう少し知ることができます。
この招待状は7日後に失効します。
招待状を見る
注意: この招待状は XXXX を対象としています。もしあなたがこの招待状を期待していなかったのなら、このメールを無視してかまいません。XXXからあまりにも多くのメールが送信される場合、ブロックするか、不正使用を報告することができます。
404エラーが発生しましたか?XXXXとしてサインインしていることを確認してください。
ボタンが機能しませんか?このリンクをコピーして、お使いのブラウザに貼り付けてください。
https://github.com/xxxx/xxxx/invitations
GitHub のメール設定を管理する
規約 - プライバシー - GitHub にログインする
 GitHubホーム
GitHub, Inc.
88 Colin P Kelly Jr Street (コリン・P・ケリー・ジュニア・ストリート)
サンフランシスコ, CA 94107


www.DeepL.com/Translator(無料版)で翻訳しました。

View invitation(招待状を見る)をクリック

GitHubの招待確認のページにリンクされていますので、確認ボタンをクリックすると、共有のリモートのリポジトリにアクセスできるようになります

C#,学習,進捗管理

Posted by hidepon