GitとGitHubを学ぼう! Javaコース初級 基礎編Day17&18 「バージョン管理システム、Git GitHubアカウントの作成とプロジェクトの作成」

デイトラJava
ハック
ハック

こんにちは!運営者のハックです。

今回は「Javaコース初級 基礎編Day17&18『バージョン管理システム、Git』と『GitHubアカウントの作成とプロジェクトの作成』」の学習再挑戦について紹介します。

Day17  バージョン管理システム、Git

バージョン管理システム(Version Control System, VCS)は、ファイルの変更履歴を管理するためのシステムです。特にソフトウェア開発でのソースコードの各バージョンを保存、追跡します。これにより、過去の任意の時点のファイル状態に戻ることや、変更内容を詳細に確認することができます。

VCSの主な機能について紹介します。

  1. 変更履歴の保存・追跡
    • ファイルに加えられた変更(編集、追加、削除)を記録します。
    • どのユーザーが何時にどのファイルに対してどんな変更をしたかを管理します。
  2. バージョン間の差分表示
    • 異なるバージョン間でのファイル内容の違い(差分)を表示します。
    • これにより、特定の変更がいつ、どのように行われたかを確認できます。
  3. バージョンの復元
    • 過去の任意のバージョン状態にファイルを戻すことができます。
    • 失敗や誤操作からリカバリーする際に役立ちます。
  4. ブランチの管理
    • 同時に複数の異なるバージョン(ブランチ)を管理し、開発を並行して進めることができます。
    • 例えば、新機能の開発中でも、バグ修正用の別のブランチで作業を進めることが可能です。
  5. マージ
    • 異なるブランチの変更を統合(マージ)します。
    • これにより、複数人または複数チームの作業内容を一つのプロジェクトにまとめることができます。

バージョン管理システムを使うことで、ソフトウェア開発の効率を大幅に向上させることができ、複数人での開発や大規模な開発プロジェクトがスムーズに進むように支援します。

主なバージョン管理システムは以下の通りです。

  • Git
    • 現在最も広く使用されている分散型バージョン管理システム。
    • ローカルとリモートのリポジトリの両方に全てのバージョン情報を保存するため、オフライン状態でもほぼ全ての操作が可能です。
  • Subversion (SVN)
    • 集中型のバージョン管理システムで、長らく業界標準の地位にありました。
    • サーバーに全てのバージョン情報が集中して保存されるため、ネットワーク接続が必要です。
  • Mercurial
    • Gitと同じく分散型バージョン管理システム。
    • Gitに比べてコマンドが簡単で、小規模プロジェクトや初学者には扱いやすいとされています。
モナ
モナ

Javaコースの講義では「Git」を用いて学習を行います。

Gitとは

Git は現在最も広く使用されている分散型バージョン管理システムで、主にソフトウェア開発などで使用されます。Gitを利用することで安全に開発を行うことができます。

ねこ奈
ねこ奈

さっきGitの説明で出てきた「リポジトリ」って何にゃあ?

モナ
モナ

リポジトリとは、バージョン管理システムにおける中心的なデータ保管場所のことです。

Git で使うリポジトリはファイルの変更差分を保管する場所を指します。具体的には、ファイルやディレクトリの状態を時間軸に沿って記録し、過去の任意の時点の状態に戻ったり、変更内容を他のユーザーと共有したりすることができます。

リポジトリには主に以下の二つの形態があります。

  1. ローカルリポジトリ:ユーザーの作業端末(PCなど)に存在するリポジトリで、個々の開発者がファイルの変更をコミット(保存)する場所です。
  2. リモートリポジトリ:インターネットやネットワーク上に存在し、チームやコミュニティでデータを共有するための中央リポジトリ。GitHubやBitbucketのようなサービスがこれに該当します。

開発を進める上でのローカルリポジトリとリモートリポジトリの関係性は以下のようになります。

  1. リモートリポジトリのデータをローカルリポジトリへ取得する
  2. ファイルに変更を加え、履歴に反映するコミットメッセージを使用して変更を説明する
  3. ローカルリポジトリのデータをリモートリポジトリに反映する

ブランチとマージ

Gitの「ブランチ(分岐)」と「マージ(統合)」は、プロジェクトのバージョン管理を効率化する強力な機能です。

ブランチ(Branch)

ブランチ(分岐)とは、開発の主流から分岐して新しい開発作業を行うための独立したラインです。これにより、元のプロジェクト(通常はmasterブランチと呼ばれます)を影響を与えることなく、新機能の追加やバグ修正などの作業を進めることができます。

マージ(Merge)

マージ(統合)は、ブランチの作業を別のブランチ(通常は開発が始まった元のブランチ)に統合するプロセスです。作業が完了し、問題なく機能することが確認されたら、そのブランチを元のブランチに「マージ」します。

Git には特定の変更点から分岐(ブランチ)して開発したり、分岐した開発を統合(マージ)したりできます。プログラムというものは何度も失敗や手戻りが発生します。
なるべく、手戻りが少なくなるよう Git ではこのブランチやマージを何度も行なって開発を進めます

課題  Gitのインストールとユーザー名の設定を行ってください。

モナ
モナ

初回学習時に登録したユーザーネームを確認しました。

Day18  GitHubアカウントの作成とプロジェクトの作成

引用:GitHub

GitHub は Git のリモートリポジトリを扱うためのサービスであり、開発者がコードをオンラインで保存、共有、および管理できるプラットフォームです。特に、オープンソースプロジェクトやプライベートなソフトウェア開発プロジェクトに広く利用されています。

GitHubには「パブリックリポジトリ」「プライベートリポジトリ」の2種類のリポジトリが用意されています。

パブリックリポジトリ

パブリックリポジトリは、誰でもインターネット上で自由に閲覧可能なリポジトリです。つまり、これらのリポジトリに格納されているコードは公開情報として扱われ、GitHub上で誰でもアクセスできます。特徴は以下の通りです。

  • アクセス: 誰でもコードを閲覧、フォーク(コピーして新しいプロジェクトとして開始)することが可能。
  • プライバシー: なし。全てのコードやプロジェクトの内容が公開されます。
  • 用途: オープンソースプロジェクトや、他の開発者との協力を目的としたプロジェクトに適しています。
  • コスト: 無料。GitHubはパブリックリポジトリを無料で無限に提供しています。

プライベートリポジトリ

プライベートリポジトリは、リポジトリの所有者や指定されたユーザーのみがアクセスできる設定になっています。これは、個人プロジェクトや商用プロジェクト、機密性の高い情報を扱う場合に適しています。特徴は以下の通りです。

  • アクセス: 所有者が許可したユーザーのみがリポジトリを閲覧、変更することができます。
  • プライバシー: 高い。プロジェクトの内容は許可されたユーザーにのみ開示されます。
  • 用途: 個人的なプロジェクト、商用プロジェクト、機密情報を扱うプロジェクトに最適です。
  • コスト: 無料プランでもプライベートリポジトリを作成することができますが、チームや大規模なプロジェクトの場合は有料プランを検討する必要があります。これにより、より多くの協力者を追加したり、高度なセキュリティ機能にアクセスしたりできます。

GitHubアカウントとプロジェクトの作成

GitHubのアカウントは規約上、1人が取得できるアカウントは1つのみです。
「Sign up」をクリックし、必要な情報(ユーザー名、メールアドレス、パスワード)を入力します。 入力したメールアドレスに送信される確認メール内のリンクをクリックしてアカウントをアクティベートします。 GitHubでは、新しいプロジェクトを「リポジトリ」として作成します。リポジトリにはコード、ドキュメント、その他のファイルが保存されます。

ねこ奈
ねこ奈

仕事でも使い続けていくものだから「aaaa」とか「qawsedrftgyhujikolp」みないな変なアカウント名にしないようににゃ。

モナ
モナ

「aaaa」とか昔のド〇クエじゃあるまいし…

ちなみにアカウント名は後から変更できます。

GitHubのホーム画面です。説明文は全て英語なので、英語が得意な方意外はchromeの翻訳機能を使うと利用しやすくなります。

プロジェクトはホーム画面の左上「new」の項目から作成できます。リポジトリ名を入力し、公開設定(PublicまたはPrivate)を選択します。 「Create repository」ボタンをクリックしてリポジトリを作成します。

まとめ  GitHubをあまり使ってないのがバレる

今回は主にGitとGitHubが何かについて紹介しました。次回はGitコマンドの使い方など実践的な内容を復習します。

ハック
ハック

GitHubは約1年前にアカウントを作っているのですが、デイトラメンターの型に質問した際にデータを共有した意外に使用していません。

現場ではGitとGitHubは必要な知識なので、これからは積極的に使用して転職するまでに身に付けておきたいです。

以上で今回の学習記録を終えます。

ここまでご覧いただきありがとうございました。

コメント

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