9.0 少し歴史を振り返ろう
Git DVCSが作られた当初、デフォルトのブランチはmaster
と呼ばれていました。Gitリポジトリにはmaster
ブランチがあり、開発者が削除する明確な手順を踏まない限り、ほとんどのケースでmaster
はソフトウェア開発の世界で重要な役割を果たしてきました。
2020年夏、多くの抗議や社会的動揺の中で、コンピュータ業界でのmaster
とslave
(主人と奴隷)の用語使用が注目を集めました。その後、master
の代わりとしてdefault
やprimary
といったいくつかの代替案が挙げられましたが、最も人気のある用語はmain
でした。
GitHubは対応し、Gitリポジトリの初期化時にmaster
の代わりにmain
を使用するようになりました。GitHub上でmaster
からmain
に切り替えるには、アカウントの設定でRepositoriesを開くか、次のコマンドを使用します:
$ git branch -m master main
講義ではmaster
の用語を引き続き使用します。詳細な移行については、以下のリンクを参照してください:
9.1 Gitとは何か、なぜ必要なのか
Gitは強力なバージョン管理システムで、ソフトウェア開発中のソースコードの変更を追跡するために使用されます。複数の開発者が共同でプロジェクトに取り組む際に、様々なファイルのバージョンを保存することができます。
Gitの基本的な概念:
リポジトリ
リポジトリ(または"repo")は、プロジェクトのすべての履歴を保存する場所で、すべての変更とファイルのバージョンが含まれます。Gitリポジトリは、ワークディレクトリ、インデックス(またはステージ)、およびオブジェクトデータベースから成ります。
コミット
コミット(commit)はプロジェクトの保存された状態です。Gitの各コミットには、プロジェクトにどのような変更が加えられたのか、誰が、いつ行ったのかが含まれています。コミットはプロジェクトの履歴を形成し、任意の前のバージョンに戻ることができます。
ブランチ
ブランチ(branch)は独立した開発ラインです。デフォルトでGitはmain(以前はmaster)ブランチを作成します。新しい機能の開発や修正のために新しいブランチを作成し、その後メインブランチに統合することができます。
マージとリベース
マージ(merge)とリベース(rebase)は、一つのブランチから別のブランチに変更を統合する二つの方法です。マージは二つのブランチの履歴を統合し、新しいコミットを作成し、リベースは一方のブランチのコミットをもう一方のブランチの頂点に移動し、コミット履歴を変更します。
9.2 基本的なGitコマンド
バージョン管理における基本的なGitコマンドの表を以下に示します:
コマンド | 説明 |
---|---|
git init | 現在のディレクトリで新しいGitリポジトリを初期化します。 |
git clone | URLからリポジトリを新しいディレクトリにクローンします。 |
git add | 次のコミットのためにファイルをインデックスに追加します。 |
git commit | 準備した変更をリポジトリにコミットします。 |
git push | ローカルの変更をリモートリポジトリにプッシュします。 |
git pull | リモートリポジトリの最新バージョンで現在のブランチを更新します。 |
git branch | ブランチを表示、作成、または削除します。 |
git merge | 指定されたブランチを現在のブランチに統合します。 |
git rebase | 変更を新しいベース(通常は別のブランチ)に適用します。 |
これらのコマンドは、Gitの基本的な作業ツールであり、コードの変更、ブランチ、およびプロジェクトのマージを管理することができます。次の講義でより詳しく説明します。
9.3 コードの3つの保存場所
バージョン管理システムをコードに使うと、コードは大まかに言って3つの場所に保存されます:
1. リモートリポジトリ:
これは、通常GitHub、GitLab、またはBitbucketのようなサービスに配置されるコードの集中保存場所です。これらはコードの集中保管と共同作業の基盤を提供します。
リモートリポジトリは、開発者が変更を共有し、作業を同期させ、プロジェクトの変更履歴を維持することを可能にします。また、リモートリポジトリは、自動化されたプロセスの統合ポイントとしても機能し、アプリケーションのビルド、テスト、デプロイメントをサポートします。
2. ローカルリポジトリ:
ローカルリポジトリは、あなたのコンピュータに保存されたコードの個人的なコピーです。このリポジトリで、Gitの操作(コミット、ブランチング、マージ)をインターネットに接続せずに実行することができます。
ローカルリポジトリは、開発者が同僚から隔離されて作業し、実験し、新しい機能を開発したり、バグを修正したりすることを可能にします。それから、変更を統合し(マージ)、リモートリポジトリに送信します。
3. ワーキングディレクトリ:
あなたのコンピュータ上のワーキングディレクトリは、現在作業中のプロジェクトの最新ファイルを含みます。これはファイルを見ることができ、変更を加え、新機能を追加したりバグを修正したりする場所です。
変更を加えた後、変更をインデックス(ステージングエリア)に追加し、ローカルリポジトリにコミットできます。ワーキングディレクトリは、リポジトリ内の現在のブランチにリンクしており、ブランチを変更するとワーキングディレクトリの内容も変わります。
これらのコンポーネントは共同で強力なソースコード管理インフラを提供し、プロジェクトの履歴を管理し、共同作業し、コードの責任を分担することを可能にします。
9.4 GitHub — 最も人気のある無料リポジトリ
GitHubは最大のウェブプラットフォームであり、バージョン管理システムGitを使用しているソースコードのホスティングを提供しています。2008年に設立され、瞬く間に世界中の開発者にとって重要なツールの一つとなりました。
GitHubは、プロジェクトの管理、コードの変更の追跡と制御、他の開発者との協力、オープンまたは非公開での開発を可能にします。フォーク、ブランチ、プルリクエスト、マージなどの機能を提供し、開発者がプロジェクトに共同で簡単に取り組むことができます。
GitHubはまた、問題の追跡、リクエスト機能、タスク管理、各プロジェクトに対するウィキの機能も含んでいます。プラットフォームは多くのツールやサービスと統合され、開発、テスト、およびアプリケーションのデプロイの自動化のための広範な機能を提供します。
GitHubは広範な開発者コミュニティをサポートしており、プログラミングのベストプラクティス、プロジェクト管理について活発な議論が行われています。これは単なるプロジェクト管理ツールとしての役割を超え、開発者が知識や経験を共有するコミュニティの中心地となっています。
9.5 GitHub登録方法
ステップ 1. https://github.com にアクセスします。
ステップ 2. 登録します…
ステップ 3. 新しいリポジトリを作成するには「New」ボタンをクリックします。
ステップ 4. リポジトリの名前を指定し、そのパラメータを設定します。
ステップ 5. プロジェクトにREADMEファイルを追加します — これは後で必要になります。
ステップ 6. "Create repository"をクリックします。
GO TO FULL VERSION