Git

Git、GitHubとは

Gitとは、誰がいつ・どこを・どのように編集したかを記録できる「バージョン管理システム」です。
(参考サイト:バージョン管理システムとは?導入メリットやおすすめの3製品も紹介
プログラム開発では、たくさんのファイルを何度も編集して一つのシステムを作り上げます。Gitは、好きなタイミングでその時々のファイルの「状態」を記録=更新履歴として保存できます。一度加えた変更を以前の状態に戻したり、過去のバージョンとの差分(どこを書き換えたか)をひと目で確認したりすることも可能です。
複雑なソースコード群の変更でも、Gitを使うことで効率的に管理できます。

また、GitHubというGitホスティングサービスGitの仕組みを用いて、ソースコードを保存・公開し他者と共同でソフトウェア開発を行うためのWeb上のプラットフォーム)があります。このGitHubと組み合わせることで、Web上で他の人と履歴を共有することができるので、チームで開発するうえで特に役立ちます。
例えば、もし1か月前の古いファイルを元に編集してしまい、最新のファイルを上書きしようとした時には警告を出してくれます。知らず知らずのうちに他人の編集内容を上書きしてしまうことが防げるのです。
プラットフォームとして使用できるサービスは他にもBacklog、GitLab、Bitbucket等があります。

簡単にまとめると、Gitが個人の作業記録ツールで、GitHubがその記録をみんなで共有する場所、ということです。
【初心者向け】Gitとは何なのか。基本用語やその仕組みをまとめています。
Gitの基本 Gitを使ったバージョン管理|サル先生のGit入門

本マニュアルの中では、受講者ごとに作業履歴の保存(データ保管)、練習問題を提出する目的でGitおよびGitHubを使用します。

Git、GitHubで履歴管理するための基礎知識

リポジトリ

リポジトリとは、ファイルやディレクトリ(フォルダ)の状態を保存・記録する場所のことです。ファイルそのものではなく、内容の変更履歴が保存されています。
リポジトリにはローカルリポジトリとリモートリポジトリがあり、
ローカルリポジトリ:個人が使用するPC内のフォルダ(プロジェクト)。Gitでバージョン管理をする対象
リモートリポジトリ:GitHub上にある、プロジェクトの(共用の)保管場所

基本の使用方法・流れ

マニュアルで使用する流れを大まかに説明します。

バージョン管理しているファイルに記述してプログラミング(ファイルに変更を入れる)
 ↓
Gitを使って変更履歴をローカルリポジトリに記録(=コミット/ Commit)する
 ↓
作業が一段落ついたら、ローカルリポジトリの変更をリモートリポジトリにアップロード(=プッシュ/ Push)する(変更内容をGitHubに保存する)。

もし別のPCで作業を続ける場合や複数人で編集する場合は、リモートリポジトリから最新のコードをダウンロード(=プル/ Pull)する。

Gitのインストール

Gitを使用できるよう、実際に環境をセッティングしていきましょう。

まず、下記サイトを参考にGitをインストールしましょう。
ただし以下の選択肢のみ、下記の通り実施してください。
・新規リポジトリ作成時のブランチ名「Adjusting the name of the initial branch in new repositories」では、「Let Git Decide」を選択してください。デフォルトのブランチ名を「master」にするためです。
Gitのインストール方法(Windows版)

(※既にPCにGitをインストールしている状態でGit操作を実行するとエラーが出ることがあります。
その場合Gitのバージョンが古い可能性が考えられるので、バージョンアップか再インストールを試してください。)

(以下のサイトはGitインストール時の各選択肢についてより詳しい解説があります。詳しく知りたい場合に参照してください。
WindowsにGitをインストールする手順

GitHub

初めてGitで管理するのは、前単元で作成したJavaプロジェクト(java-○○)です。つまり、バージョン管理する対象(ローカル上のディレクトリ)です。
このJavaプロジェクトをWeb上で管理できるようにするために、リモートリポジトリを作成しましょう。
リモートリポジトリを作成する前に、GitHubのアカウント作成から開始します。

アカウント作成

下記サイトを参考にGitHubのアカウントを作成してください。
GitHubアカウントの作り方
GitHub

次に、デフォルトのブランチ名を”master”に変更します。
【設定方法】デフォルトブランチの設定を開き「Repository default branch」項目の入力欄に表示されている文字を”master”に書き換えてください。初期設定は”main”になっています。
本流のブランチ名は”master”か”main”が多く、どちらも同じ意味ですがコンパスでは”master”を使用しています。
GitHubのアカウント作成時の初期設定は以上です。

リモートリポジトリ作成

アカウントが作成できていれば、リモートリポジトリを作成できます。
①GitHubのホーム画面で、ヘッダー右上にある「+」をクリックして表示される項目の「New repository」をクリックします。

②入力画面にて、後述の<リポジトリを作成する際の注意点>に則って入力、Privateを選択します。ページ最下部の「Create repository」ボタンをクリックします。

<リポジトリを作成する際の注意点>
・リポジトリは「Private」で作成してください。「Public」にすると全世界に公開されてしまいます。プロジェクト内容は社外秘なので必ず「Private」を選択してください。
・リポジトリ名はプロジェクト名と一致させる。(初回の場合はjava-○○(○○は苗字))
・リポジトリはプロジェクト毎に新しく作成します。

ローカルのディレクトリ、リモートリポジトリの準備ができましたので
日常的に行うことになる「リモートリポジトリへのプッシュ」をできるようにするために、次は初回コミット(連携させるための初期設定+コミット、プッシュ)を行っていきます。

Git Bashによる操作(CUI)とEclipseによる操作(GUI)

Gitを使うためのツールは様々ありますが、全てCUIかGUIに分けられます。CUIとGUIについては以下の記事を参考にしてください。
【初心者向け】CUIとGUIの違いとその特徴。なぜ使い分ける必要があるのか。
CUIは、学ぶ言語や使用するOSに関わらず同様のコマンドで使用できるので、特に覚えておいて損はないでしょう。

ここではGit Bash(CUI)を使った方法と、EclipseのGitステージング(GUI)を使った方法を紹介します。
下記の方法を参照し、CUIまたはGUIのどちらかを選んで初回コミットを実行しましょう。

Git Bashによる操作(CUI)

CUIの操作方法や実行例の解説について、初学者や不慣れな方は下記のPDFマニュアルをご参照ください。
経験のある方や特に抵抗のない方はこのマニュアルは参照しなくても問題ありません。

基本コマンド

Gitは複数人で共同開発する際にはマージ(merge)やフェッチ(fetch)が必要ですが、研修中は個人利用の範囲ですので必要な操作は多くありません。
下記は基本操作を示した表です。

1git initフォルダをGit管理できるようにする(.gitフォルダを生成する)
2git remote add origin [URL]プッシュ先のリモートを指定する(リモートとローカルを紐づける)
[URL]にはGitHubのリポジトリページからコピーする(プッシュしたことがあるリポジトリでは「Code」を開く)
3git statusファイルの状態を確認する
4git add .今いるディレクトリ(カレントディレクトリ)以下の、変更があった全てのファイルをステージングエリアに移動する
全てではなくファイルごとに行う場合は「.」を「ファイル名(フルパス)」に変更
(例)「git add /src/com/cmps/data/Data.java
5git commit -m "[コメント]"ファイルの変更を確定する
コメントには修正した内容を分かりやすく書く(日本語OK)(例:“○○ 追加”、”商品一覧表示機能 修正”など。初回は”初回コミット”)
6git push origin [ブランチ名]ローカルでの変更をリモートに反映する
[ブランチ名]はmaster、developなど。通常の場合、master(特にブランチを切っていない場合)
7git pull origin [ブランチ名]リモートの最新版を取得し、ローカルに反映する

※コマンドを実行する前に、カレントディレクトリがプロジェクト直下(例:java-○○)であることを必ず確認します。(詳細はPDF手順)
※括弧[]は、入力の際は取り除いてください。(分かりやすくするために付けています)
※半角スペースが無いだけでも異なるコマンドとして認識されてしまうので、正確に打ちましょう。
(またはコピー&ペーストする)

【初回コミット】初回はGitHubでリポジトリを作成した後、12(→3)→4(→3)→56で初回コミットします。
(→3)はステータスを念のため確認する操作のため省略可能。
(※GUIで初回コミット済みの場合は、CUIでの初回コミット(リモートリポジトリとの連携)は不要です。)

【2回目以降】(毎日作業開始前に7を行い、作業終了後に7)(→3)→4(→3)→56で変更をリモートに反映させます。

EclipseのGitステージングによる操作(GUI)

Gitステージングによる操作方法は、下記のPDFマニュアルを参照してください。

【初回コミット】初回コミット準備(ローカルリポジトリの作成(git initにあたります))→コミット(ステージング→コメント→コミット、プッシュ)を行います。
(※先にCUIで初回コミット済みの場合、ローカルリポジトリの作成は行いません。Access Tokenの発行については必要)

【2回目以降】(毎日作業開始前にプルを行い、作業終了後にプル→)コミット(ステージング→コメント→コミット、プッシュ)の一連を行います。
プルの実行については後述

実務での注意点(CUI/GUI共通)

複数人で作業する場合、まず他の人の変更を取り込む(プル、pull)ことが必要です。1人で作業する場合は必要無い操作ですが、実務を想定して慣れるために毎回プルをしてからコーディング作業を始めると良いでしょう。また、作業終了後もプルをしてからプッシュします。
コミットする際のコメントの書き方については特に細かい決まりはなく、見返したときにどんな修正や追加を行ったか分かるように一文程度で書きます。現場によって決まりがあれば、その決まりに従います。

※実務では、既に用意されたリポジトリからクローン(clone、複製)する作業から始めることがほとんどで、その場合は初回コミットはありません。
このコマンドはプロジェクトを配置したい場所で実行します。マニュアルの環境下であれば、「/c/pleiades/2024-12/workspace」といったパスです。(GUIでも実行可能)

git clone [URL]リモートリポジトリの全ファイルをローカルにコピー(URL:GitHubに紐づくURL)

コラボレーターの招待

GitHubに新規にリポジトリを作成したら、以下の講師2名をリポジトリに招待してください。

  • ErikaMaruyama
  • KotaMoriki

コラボレーターの招待方法は以下

他のユーザーを招待する方法

githubのリポジトリの画面で上のタブの「Settings」をクリックし、サイドバーの「Collaborators」をクリック。
「Confirm access」という画面に切り替わり認証を求められたら、パスワードを入力して「Confirm」をクリックします。
次に「Add people」をクリック。

入力欄に、招待したいユーザーの「ユーザー名」または「メールアドレス」を入力し、招待したいユーザーを選択。

選択したユーザーに間違いがなければ「Add to repository」をクリック。

招待が完了すると、「Manage access」の欄に招待したユーザーが追加されます。
追加したユーザーの名前の横に「Pending invite」と表示されていた場合は相手の承認待ちとなります。

今後の学習でのGit管理について

次の単元から具体的な学習に入ります!
次の単元以降は、マニュアルの1単元(1ページ)終わるたびにプッシュしてください。(git add~push)

コミットメッセージには単元名(ページのタイトル)を含めるようにしてください。
※単元途中でもプッシュしても良く、(完了)(途中)(修正)(~まで実施)など、他者が見てもわかるようにコメントを工夫しましょう。
↓ 例

練習問題に修正があった場合

練習問題の解答に修正箇所があった場合やコードの記述などに対し補足事項がある場合に、
GitHub上のコミットに対して講師からコメントを入れます。同時にGitHubに登録のメールアドレスにも転送されます。

コメントを確認したら修正し、再度プッシュしてください。コミット名には(修正)といったワードを含めて分かりやすいものにしてください。

<GitHub上で講師からのコメントを確認する方法>
時計マークをクリックするとコミット一覧が開けます。

コミット一覧では、コメントがついている場合、コメントのアイコンが表示されます。
コミットメッセージまたはコメントアイコンをクリックすると、個別のコミット内容、およびコメントの内容が確認できます。

実務レベルにGitを使いこなすには、ここで紹介・実践していない内容についてもまだまだ学ぶ必要があります。
コラム「Gitの補足知識・演習」にて、さらに追加の知識や演習などを発展の内容として紹介していますので、ぜひ学習の片手間に参照・実践してください。

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