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の初回設定は何度も実施するものではなく、
失念していることも多いことから、ナレッジとして記録しました。
時間の経過とともに古くなると思いますので、お気づきの点などございましたら、
コメントやメッセージをくださると幸いにございます。