Github, Git を導入して、ソースコードを共有するまで
Github, Git の導入をナレッジ化した経緯
メンタリング時にソースコードを共有してもらいたい場面がよく出てきます。
プロジェクトをまるごとZIP圧縮して送っていただくことも可能です。
一方、多くはGithub, Gitを利用します。
チーム開発で使用するのはもちろん、個人開発の方でもバージョン管理の観点から導入は必須です。
以前は特定のサイトだけ見てればインストールからソースコードのプッシュ、共有までできていたように
記憶していたのですが、時の流れは早いもので、2023年9月末現在では、
結構散らばってしまっていることがわかりましたので、ナレッジとしてまとめます。
内容に不明点など有りましたら、メッセージ等でお問い合わせください。
Git の概念的な内容 ~ Windows、Macでのインストールはこちら
概念を知りたい場合は、以下『Gitの基本』を読んでください。
Gitの基本
Gitを使ったバージョン管理
履歴を管理するリポジトリ
変更を記録するコミット
ワークツリーとインデックス
Gitのインストール
Gitのインストールは、「サル先生のGit入門」に手順がありますので、こちらを参照してインストールしてください。
サル先生の「お使いのパソコンの環境を選んでください。」>「Macを選択」または「Windowsを選択」を
選択することで、お使いの環境の合わせた手順を切り替えることができます。

コマンドラインベースを使用する方は「コンソールを選択」の手順を実施してください。
SourceTree(Mac/Windows), TortoiseGit(Windows)のGUIベースをインストールしつつ、コンソールのGitもインストールすることは可能です。
Gitの初期設定
各環境の初期設定は以下から参照できます。
初期設定
サル先生の「お使いのパソコンの環境を選んでください。」>「Macを選択」または「Windowsを選択」を
選択することで、お使いの環境の合わせた手順を切り替えることができます。
ファイルをコミットする
サル先生の「お使いのパソコンの環境を選んでください。」>「Macを選択」または「Windowsを選択」を
選択することで、お使いの環境の合わせた手順を切り替えることができます。
コミットってなに?と気になってモヤモヤしてしまう方は、以下記事をご一読ください。
Gitの基本 変更を記録するコミット
ここまでで、お使いの環境のローカルリポジトリのGit環境は整いました。
次はリモートリポジトリである、Githubの設定になります。
リモートリポジトリ Githubの設定
Progateに手順があります。各々の環境毎に、Githubアカウントを取得してください。
リンク先がブラウザで開きましたら、「GitHubの設定」をクリックして、手順を始めてください。
「GitHubアカウントの作成」まで実施してください。
リモートリポジトリの作成
ここから、操作を直接記載していきます。
GitHubのヘッダー右上にある「+」をクリックして表示される項目の「New repository」をクリックします。

Repository name * に、リポジトリ名を入力します。小文字英数、ハイフン(-)を使うのが一般的です。
また、公開範囲はPrivateを選択してください。Publicですと意図しない全世界公開状態になります。

Add .gitignore で、除外リストをあらかじめ作ることもできます。
よくわからない方はここは今選択しなくても大丈夫です。

Spring Boot プロジェクトで、ビルドツールが Maven の場合は、Mavenを選んでおくと良いでしょう。

Create repository をクリックします。

リモートリポジトリが作成されます。

アクセストークンを取得する
GitHubの認証情報を取得、設定する方法が公式にあります。
個人用アクセス トークンを管理する
GitHub公式によると、
personal access tokens (classic) よりも、
Fine-grained personal access token を推奨しているようなで、こちらの手順を記載します。
上記手順を以降に記載します。
右上隅にあるプロフファイル画像をクリックします。

Settings をクリックします。

左のサイドバーの一番下の、Developer settings をクリックします。

Personal access tokens をクリックして、メニューを展開します。

Fine-grained tokens をクリックします。

Generate new token をクリックします。

New fine-grained personal access token 画面で、Token name と Expiration を入力します。
Token name に任意のご自身で識別できる値(リモートリポジトリ名を入れておくのをおすすめします)を
入力し、Expiration は有効期限を選択します。

Repository access で、Only select repositories > Select repositories > 作成したリポジトリ
をクリックします。

Permissions に多くの項目が現れます。

しかし、最低限 push をしたいだけなら、Contents を Read and Write にします。

下部へスクロールし、Overviewを確認します。
画像のようになっていれば、作成したリポジトリに、push は可能となります。
後に、色々とやりたいことが増えたら、増えた時に必要な権限を開放してトークンを作り直します。
Generate token をクリックします。

コピーアイコンをクリックして、アクセストークンをコピーし、
テキストエディタなどに貼り付けておいてください。
この画面は再表示できないため、注意してください。

Github CLIをインストールし、Githubとの認証をする
GitHub CLI をインストールする。
Windows:winget install --id GitHub.cli
Mac:brew install gh or sudo port install gh など
インストールしたら、ターミナルなどで、 gh auth login コマンドを打ちます。
※ Windowsの場合、インストールコマンドを打ち込んだターミナルやプロンプトなどは一度閉じて開き直してください。
※ 開き直さないと、ghコマンドが認識されません。
上下カーソルで選択まち状態になります。 GitHub.com のまま、Enterします。

HTTPS のまま、Enterします。

Y を入力して、Enterします。

Paste an authentication token を選択し、Enterします。

Paste your authentication token : に、テキストエディタなどに貼り付けておいた、
アクセストークンを貼り付けます。
Enterします。

Logged in as ユーザ名 と表示されれば、Githubとの認証は成功です。

アクセストークンの有効期限が切れた場合、Github上でアクセストークンを生成し直した上、
gh auth login から実施し直せば、再度認証は可能です。
ローカルリポジトリからプログラムを Github に push する【初回のみ】
ターミナルやプロンプトで、pushしたいプロジェクトまで、cd コマンドで移動します。

git init コマンドを打ちます。

WebブラウザでGithubを開き、push したいリモートリポジトリを選択 > Code をクリック > HTTPS > コピーアイコンをクリックします。

git remote add origin コピーしたURL コマンドを打ちます。

git remote -v コマンドで、リモートリポジトリの登録状況が確認できます。

git status コマンドで、ローカルリポジトリの状態が確認できます。
リポジトリに追加もコミットもしていないので、配下すべて赤字で表示されます。

git add . コマンドで、配下すべてのファイルを追加します。

git status コマンドを再び打つと、緑色になり、
ローカルリポジトリ管理に追加されたことが確認できます。

git commit -m "First time registration" コマンドを打ってコミットします。 コミットコメントは任意のものを入力できます。

git push origin main コマンドを打って、Githubのリモートリポジトリへプッシュします。

上記のようにエラーが出る場合、Github上のリポジトリで作成された履歴とマージさせます。
1回目のpushで成功されている場合は、このような場合もあるのだと参考して頂き、
手順をスキップしてください。
git pull origin main --allow-unrelated-histories コマンドを打ちます。

git push origin main を再び打ちます。

エラーや失敗メッセージが表示されていなければ、成功しています。
Githubを確認してみましょう。

Githubのリモートリポジトリへpushができました。
Githubのリモートリポジトリを共有する
メンターにソースの内容を見てもらったり、コードレビューをしてもらう際、
公開範囲がPrivateの状態のままではメンターがみることはできません。
そこで、コラボレーターを設定します。
事前準備として、追加したい人のGithubアカウントは教えてもらってください。
以下、公式のドキュメントです。
コラボレーターを個人リポジトリに招待する
共有したいリポジトリの Settings をクリックします。

Collaborators > Add people をクリックします。

追加したい人のアカウントを検索します。
※人違いをしないように注意です。

Add **** to this repository をクリックします。

**** has been added as a collaborator on the repository. と表示されれば、リポジトリを共有できています。

Codeタブに戻って右側に Contributors 欄が現れ、追加したアカウントが表示されていれば、
これで共有は完了です。

おわりに
メンターである私自信も、GitやGithubの初回設定は何度も実施するものではなく、
失念していることも多いことから、ナレッジとして記録しました。
時間の経過とともに古くなると思いますので、お気づきの点などございましたら、
コメントやメッセージをくださると幸いにございます。



