開発側としてGitHubを登録します

スポンサーリンク

GitHubは普段、ほとんどがGitのクローンを作成して、便利なプロジェクトを使用するのが主な目的でした。今日は、それ以外にも便利な機能があるので学習することにしました。以下の公式ページでサインアップしておきます。

GitHub: Let’s build from here
GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source commun...

GitHubにサインアップした直後に表示されるページがリポジトリの作成を促すものであることから、GitHubを利用してプロジェクトを始める、または既存のプロジェクトをGitHubに移行する最初のステップとして推奨されていると考えます。というわけで、リポジトリを作成することから始めます。もし、特定のプロジェクトに取り組む予定がまだない場合でも、リポジトリを作成し、GitHubの基本的な使い方に慣れることは有益です。また、将来的にGitHubを利用してプロジェクトを管理する際に役立つ基礎を学ぶ良い機会となります。GitHubにリポジトリを追加する目的は多岐にわたりますが、主に以下の二つの大きな目的があります。

ソースコードの公開と共有

GitHubは、ソフトウェア開発プロジェクトのソースコードを公開し、他の開発者と共有するためのプラットフォームとして広く利用されています。オープンソースプロジェクトの場合、ソースコードを公開することで、世界中の開発者からの貢献を受け入れることができます。また、個人のプロジェクトやポートフォリオとしても、自分の作品を展示し、他の人と共有するための場として利用されます。

外部サービスとの連携

GitHubは、Cloudflare PagesやNetlify、Herokuなどの外部サービスとの連携によって、デプロイメントやCI/CD(継続的インテグレーション/継続的デリバリー)、テスト、モニタリングといった開発プロセスを自動化し、効率化するための基盤を提供します。

  • Cloudflare Pages: 静的サイトやフロントエンドアプリケーションのデプロイメントに特化したサービスで、GitHubリポジトリにプッシュするだけで自動的にビルドとデプロイが行われます。セキュリティやパフォーマンスの最適化も自動的に提供されます。
  • Netlify: 静的サイト及びサーバーレス関数のホスティングサービスで、GitHubリポジトリを使用して直接サイトをデプロイすることができます。ビルドプロセスのカスタマイズやプレビューURLの提供など、開発者フレンドリーな機能が豊富です。
  • Heroku: より汎用的なアプリケーションホスティングプラットフォームで、GitHubリポジトリをソースとして使用してアプリケーションを自動デプロイすることができます。バックエンドアプリケーションのデプロイメントにも適しています。

これらのサービスは、GitHubリポジトリと連携することで、開発フローをシンプルにし、デプロイメントプロセスを自動化することができます。また、リポジトリ内のコードに変更が加えられるたびに自動的にビルドとデプロイが行われるため、常に最新の状態を保つことができます。これにより、開発者はコードの作成と改善に集中することができ、運用の手間を大幅に削減できます。このうち、私はソースコードを公開する可能性があることと、Cloudflare Pagesで必要になるかもしれないので、この機会に記事を書くことにしました。

リポジトリを登録する、または作成することは、プロジェクトのための専用の保存場所を作ることを意味します。このプロセスをより理解しやすく説明するために、基本から順を追って説明します。

リポジトリ(Repository)とは?

リポジトリは、あるプロジェクトのファイルやディレクトリ(フォルダ)を格納する場所です。これにはソースコード、画像、文書など、プロジェクトに関連するあらゆるものが含まれます。リポジトリを使用する主な理由は、バージョン管理を可能にすることです。バージョン管理システム(例:Git)を使ってリポジトリを管理することにより、ファイルの変更履歴を記録し、必要に応じて過去のバージョンに戻ったり、どの変更がいつ誰によって行われたかを確認することができます。

ローカルリポジトリとリモートリポジトリ

  • ローカルリポジトリは、自分のコンピュータ上に存在するリポジトリです。開発作業はこのローカルリポジトリで行われ、ファイルの追加や変更、コミット(変更の記録)などがここで実施されます。
  • リモートリポジトリは、インターネット上のサーバーにホストされるリポジトリです。GitHub、GitLab、Bitbucketなどのサービスがこれに該当します。リモートリポジトリを使用する主な目的は、プロジェクトをバックアップし、チームメンバー間でコードを共有し、協力して作業を進めることです。

リポジトリを登録(作成)するとは?

リポジトリを登録(作成)するということは、プロジェクトのための新しい保存場所を作ることを意味します。具体的には以下のステップを含みます。

  1. ローカルリポジトリの作成: これは、自分のコンピュータ上で新しいディレクトリ(フォルダ)を作成し、その中でgit initコマンドを実行することにより、そのディレクトリをGitのバージョン管理下に置くことです。
  2. リモートリポジトリの作成: GitHubなどのサービス上で新しいリポジトリを作成します。これは主にウェブインターフェースを通じて行われます。
  3. ローカルリポジトリとリモートリポジトリの連携: ローカルリポジトリでの変更(コミット)をリモートリポジトリに「プッシュ」することで、これら二つのリポジトリを同期させます。これにより、リモートリポジトリがプロジェクトのバックアップとして機能し、チームメンバーとの共有が可能になります。

私のように、一人でプロジェクトを進める場合でも、リポジトリを作成し、バージョン管理を利用することには大きなメリットがあります。以下に、個人プロジェクトでリポジトリを使う際の主な利点を挙げます。

変更履歴の管理

リポジトリを使用すると、プロジェクトの各ファイルに加えた変更の履歴を記録できます。これにより、いつ何を変更したかが明確になり、必要に応じて過去のバージョンに戻すことが容易になります。また、特定の変更がいつ、なぜ行われたかを理解するのに役立ちます。

安全なバックアップ

ローカルリポジトリとリモートリポジトリ(例: GitHub上)を連携させることで、プロジェクトのバックアップを簡単に作成できます。これにより、コンピュータの故障やデータ損失のリスクからプロジェクトを保護できます。

効率的な変更管理

新機能の開発やバグ修正を行う際に、ブランチを使用して作業を分離することができます。これにより、メインの開発ラインを安定させたまま、新しいアイデアを自由に試すことができます。作業が完了したら、その変更をメインのプロジェクトに統合(マージ)することができます。

プロジェクトの公開と共有

将来的に他の開発者と協力する可能性がある場合、または自分のプロジェクトをポートフォリオとして公開したい場合、リモートリポジトリを利用すると便利です。GitHubのようなプラットフォームでは、プロジェクトを公開して広く共有することができ、他の開発者からフィードバックを受け取ることも可能です。

自動化と連携

多くの開発ツールやサービスは、GitHubなどのリポジトリホスティングサービスと連携して動作します。これにより、コードの自動テスト、デプロイメント、ドキュメンテーションの生成など、開発プロセスの多くの側面を自動化できます。

まとめ

個人でプロジェクトを進める場合でも、リポジトリとバージョン管理システムを利用することで、開発プロセスがより効率的で安全になります。変更履歴の追跡、安全なバックアップ、そして将来的な共有や協力のための準備が可能になるため、プロジェクトの成長と維持において非常に有効な手段となります。

実際にリポジトリを新規で作成します。すると上段と下段にコマンドが表示されます。

両方のコマンドセットには若干の違いがありますが、どちらを使用するかは、現在の状況と目的によって異なります。以下に、それぞれのコマンドセットの説明と使用シナリオを示します。

上段のコマンドセット

このセットは、新しいGitリポジトリの初期化から始まり、README.md ファイルの作成、それをステージングしてコミットし、最後にGitHubにプッシュするまでの一連のプロセスを含んでいます。このセットは、まだローカルにリポジトリが存在しない、新規プロジェクトを始める際に適しています。

  1. echo "# test" >> README.md: README.md ファイルを新規作成または既存のファイルにテキストを追加します。
  2. git init: 現在のディレクトリに新しいGitリポジトリを初期化します。
  3. git add README.md: README.md ファイルをステージングエリアに追加します。
  4. git commit -m "first commit": ステージングされた変更をコミットします。
  5. git branch -M main: デフォルトブランチの名前をmainに変更します。
  6. git remote add origin https://github.com/superdoccimo/test.git: GitHubリポジトリのURLをリモートとして追加します。
  7. git push -u origin main: ローカルのmainブランチをGitHubにプッシュし、以後origin mainをデフォルトのアップストリームとして設定します。

下段のコマンドセット

このセットは、GitHubリポジトリのURLをリモートとして追加し、ブランチ名をmainに変更し、GitHubにプッシュするコマンドのみを含んでいます。このセットは、すでにローカルでGitリポジトリが初期化されている場合や、ファイルの追加や初回コミットを既に行っている場合に適しています。

  1. git remote add origin https://github.com/superdoccimo/test.git: GitHubリポジトリのURLをリモートとして追加します。
  2. git branch -M main: デフォルトブランチの名前をmainに変更します。
  3. git push -u origin main: ローカルのmainブランチをGitHubにプッシュし、以後origin mainをデフォルトのアップストリームとして設定します。

どちらを使用すべきか?

  • 新規プロジェクトの場合: 上段のコマンドセットを使用してください。これにより、リポジトリの初期化からGitHubへのプッシュまでの一連の流れを完了できます。
  • 既にローカルリポジトリが存在し、初期のファイル追加やコミットを行っている場合: 下段のコマンドセットで十分です。これにより、リモートリポジトリの設定と初回のプッシュを行うことができます。

WindowsでGitを利用するには、まずGitをインストールする必要があります。インストール後、Gitを使ったコマンドはコマンドプロンプト、PowerShell、またはGit Bash(Git for Windowsに含まれています)で実行することができます。具体的な手順は以下の通りです。

1. Gitのインストール

  • Gitの公式サイト(https://git-scm.com/)からWindows向けのインストーラをダウンロードし、指示に従ってインストールします。

2. リポジトリを作成するためのフォルダを準備

  • プロジェクト用の新しいフォルダを作成するか、既存のプロジェクトフォルダを利用します。このフォルダが、Gitリポジトリのルートディレクトリとなります。
  • 例えば、C:\Projects\MyProjectというフォルダで作業を始める場合は、まずそのフォルダを作成し、次にコマンドプロンプトやGit Bashでそのフォルダに移動します。
    C:\Projects\MyProject

3. コマンドの実行

  • フォルダに移動したら、リポジトリの初期化、ファイルの追加、コミット、GitHubへのプッシュといった一連のGitコマンドを実行します。

例: 上段のコマンドセットの実行

  1. README.md ファイルの作成:
    echo "# test" >> README.md
  2. Gitリポジトリの初期化:
    git init
  3. README.md ファイルの追加:
    git add README.md
  4. 変更のコミット:
    git commit -m "first commit"
  5. メインブランチの設定:
    git branch -M main
  6. GitHubリポジトリへのリモートの追加:
    git remote add origin https://github.com/yourusername/yourrepository.git
  7. GitHubへのプッシュ:
    git push -u origin main

4番のコミットのコマンドでエラーが発生しました。Gitのエラーは、多くの場合、コマンドの使用方法を学ぶ良い機会となります。エラーメッセージを注意深く読み、指示に従うことで、多くの問題を解決することができます。

Author identity unknown

*** Please tell me who you are.

Run

git config –global user.email “you@example.com”
git config –global user.name “Your Name”

to set your account’s default identity.
Omit –global to set the identity only in this repository.

fatal: unable to auto-detect email address (got ‘minok@n4060.(none)’)

最も一般的なエラーの一つに、ユーザー名とメールアドレスがGitの設定に登録されていない場合があります。Gitでは、コミットするたびにこれらの情報を使用して、誰がその変更を行ったかを記録します。

設定方法

Gitのユーザー名とメールアドレスを設定するには、以下のコマンドを使用します。

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

"Your Name""your_email@example.com"は、使用したい名前とメールアドレスに置き換えてください。

Gitの設定で使用する名前(user.name)とメールアドレス(user.email)については、いくつかのポイントを理解しておくと良いでしょう。

名前(user.name)

  • この名前は、コミットを識別するために使用されます。技術的にはどのような名前でも構いませんが、プロジェクトで協力する他の人たちがあなたを識別できるような名前を選ぶのが一般的です。実名やGitHubのユーザーネームなど、他の開発者にとって意味のある名前が推奨されます。
  • 「適当な名前」とすることもできますが、コミット履歴で誰が何をしたのかを追跡する際に、実際の名前や識別しやすいユーザーネームを使用する方が、プロジェクトの透明性や協力の促進に役立ちます。

メールアドレス(user.email)

  • Gitで設定するメールアドレスは、GitHubに登録したメールアドレスである必要があります。これにより、GitHubがコミットをあなたのGitHubアカウントに正しく関連付けることができます。
  • もしGitHubで複数のメールアドレスを使用している場合は、どのメールアドレスを使用しても構いませんが、コミットをGitHubアカウントに関連付けたい場合は、GitHubアカウントに登録されているメールアドレスを使用する必要があります。
  • GitHubでは、メールアドレスをプライベートに保つための設定も提供しています。GitHubで「noreply」メールアドレスを使用することで、公開されるコミット情報に個人のメールアドレスを表示させないようにすることもできます。

これで4番の変更のコミットでエラーは出なくなりました。最後の7番のGitHubへプッシュでボックスが表示されました。GitHubへのログインボックスです。

ブラウザかトークンを選択できたので、ブラウザを起動してログインする方法を選択しました。ブラウザに「Authorize Git Credential Manager」が表示されたとき、これはGitの操作(例えば、GitHubへのプッシュ)においてGitHubの認証情報が必要になったことを意味します。Git Credential Manager (GCM) は、Git操作で使用する認証情報(ユーザー名やパスワード、パーソナルアクセストークンなど)を安全に保存し、自動的に使用するためのツールです。これにより、毎回認証情報を入力する手間を省くことができます。

GCMによる認証の流れ

  1. 認証情報の要求: Git操作(例えば、リモートリポジトリへのプッシュ)を実行する際に、GitHubの認証情報が必要になります。
  2. ブラウザの起動: Git Credential Managerが自動的にブラウザを開き、GitHubのログインページにリダイレクトします。
  3. GitHubでのログイン: 指示に従ってGitHubアカウントでログインします。初めてGCMを使用する場合、GitHubに「Git Credential Manager」へのアクセスを許可するよう求められることがあります。
  4. 認証情報の保存と使用: ログインに成功すると、GCMが認証情報を安全に保存し、今後のGit操作で自動的に使用します。

注意点と対処法

  • セキュリティ: GCMは認証情報を安全に保存しますが、セキュリティに関する最新の情報に留意し、GitHubアカウントの二要素認証(2FA)を有効にすることを推奨します。
  • パーソナルアクセストークン (PAT): GitHubはパスワードによる認証を廃止し、PATやOAuthなどのより安全な認証方法を使用しています。GCMを使用している場合は、この過程で自動的にPATが使用されます。
  • 認証情報の更新: GitHubのパスワード変更やPATの期限切れなどで認証情報を更新する必要がある場合は、GCMに保存されている古い認証情報を更新する必要があります。GCMのドキュメントまたはGitHubのヘルプセクションで詳細な手順を確認してください。

GCMによる認証プロセスが完了すれば、GitとGitHubの間での安全な認証情報のやり取りがスムーズに行われ、Git操作がより効率的になります。実際のブラウザでの操作は「Authorize git-ecosystem」ボタンをクリックすることでGitHubへのログイン画面が表示されます。

「Authorize git-ecosystem」ボタンをクリックすることで、Git Credential Manager(または関連するGit認証システム)がGitHub上であなたのアカウントにアクセスするための権限を得ることができます。これにより、リポジトリへのアクセスやコードのプッシュ、プルリクエストの作成など、GitHubでのさまざまな操作が可能になります。

このプロセスは、GitHubとGit操作の間の認証をスムーズに行うためのもので、以下のような利点があります。

  • 認証情報の安全な管理: ユーザー名やパスワード、パーソナルアクセストークン(PAT)などの認証情報を安全に管理し、保存します。
  • 自動認証: 一度認証情報を設定すれば、以後のGit操作時に毎回認証情報を入力する必要がなくなり、効率的に作業を進めることができます。
  • セキュリティの向上: GitHubのアクセス権限を適切に管理することで、不正アクセスのリスクを減らすことができます。

「Authorize git-ecosystem」ボタンをクリックした後、必要に応じてGitHubのアカウント情報でログインし、アクセスを許可することで、認証プロセスが完了します。これにより、Git Credential ManagerがGitHubの認証情報を利用してGit操作を行うことが可能になります。

これでGitHub上にリポジトリを作成し、ローカルからリポジトリにコードをプッシュする一連のプロセスを完了したことになります。GitとGitHubを使った基本的な操作に慣れることは、ソフトウェア開発において非常に重要です。今回の経験が、今後の開発活動に役立つ良い練習になりました。

エクスプローラでプロジェクトを確認すると.gitフォルダがあり、隠しフォルダ扱いになっていました。

.gitフォルダは、Gitによるバージョン管理情報を格納するためのもので、Gitを初期化したプロジェクトディレクトリに自動的に作成されます。このフォルダには、リポジトリの設定ファイル、ブランチ情報、コミット履歴、リモートリポジトリの情報など、プロジェクトのバージョン管理に必要なすべてのメタデータが含まれています。

.gitフォルダが隠しフォルダとして扱われるのは、通常のプロジェクト作業中にこのフォルダの内容を直接操作することが少ないためです。また、誤って変更や削除を行うと、プロジェクトのバージョン管理履歴に影響を与える可能性があるため、通常はユーザーから見えないようになっています。

GitコマンドラインツールやGitをサポートするIDE(統合開発環境)を通じて、.gitフォルダの管理を行うことが一般的です。直接.gitフォルダを操作する必要があるのは、特定の設定を変更したり、高度なバージョン管理操作を行う場合など限られています。

安全のため、.gitフォルダの内容を変更する際には、その操作が何を意味するのかを十分に理解していることが重要です。誤った操作は、リポジトリの破損やデータの損失につながる可能性があるため、注意が必要です。

自分で作成したリポジトリがどうなっているかGitHubします。このプロセスを通じて、GitHub上でのリポジトリ管理の基本から、ローカル環境での作業、そして変更をリモートリポジトリにプッシュするまでの一連の流れを経験できました。これは、個人プロジェクトの管理だけでなく、チームでの協力作業においても重要なスキルです。

開発者側としてリポジトリを作成した後に見た「見慣れた画面」は、GitとGitHubの使い方を理解している証拠でもあります。この経験は、将来的により複雑なプロジェクトに取り組む際や、他の開発者とのコラボレーションを行う際にも役立つでしょう。

自分でリポジトリを作成し、それをクローンして作業を始めることは、ソフトウェア開発のプロセスを実際に体験する絶好の機会です。この経験を通じて、バージョン管理、コードの共有、フィードバックの収集といった開発プロセスの各段階について深い理解を得ることができます。

GitHubを使ったプロジェクト管理やコード共有、コラボレーションにはまだまだ多くの機能があります。ブランチの管理、プルリクエストの作成、イシューの追跡、GitHub ActionsによるCI/CDパイプラインの構築など、さらに探求する価値のあるトピックがたくさんあります。

タイトルとURLをコピーしました