はじめに
機械学習の勉強を始めようと思ったが、いい感じに作成履歴とかを残しときたいな...と思ったので、イチからGitHubについて勉強して作成してみます。
参考
以下のサイトを参考にしました。
【初心者向け】GitHubの使い方を8ステップでわかりやすく解説
自分が現在持ち合わせているGitHubの情報
- バージョン管理が可能なGitの機能を持ったサービス
- Gitでpushとかなんやかんやすることで、これまでの履歴との比較とかが出来て便利!
- 最近、GitHub Copilotが出てきて、ますます便利に?
では実際にお勉強
まず、Gitには以下の機能があるらしいです。
- ローカル/リモートリポジトリ
- クローン
- ブランチ
- コミット/プッシュ
- プルリクエスト
- フォーク
1. ローカル/リモートリポジトリ
"リポジトリ"がファイル、フォルダを保存する場所のことらしい。ローカルリポジトリは、自身のPC(環境)内にあるもの。リモートリポジトリが、GitHubを利用したネットワーク上にアップロードをするもの。
複数人で作業するときに、同期作業とかがあるとめんどいので、上手く使うと便利っぽいかな。
2. クローン
リモートリポジトリをローカルにコピーして、ローカルリポジトリを作成すること。
3. ブランチ
履歴の流れを分岐して記録していくもの。使い方としては、
・一つのプロジェクトに対し、複数人で機能追加、バグ修正を行う際、並行して行われる作業を一旦別のブランチで実行 → 後で内容を一致させる
・実際にリリースする用のブランチと、デバッグ等を実施するテスト用ブランチを用意し、作業が終了してからテストブランチの内容をリリースブランチにコピーする
などがあります。このブランチの変更の反映のことを(上ではコピーと書きましたが)「マージ(merge)」と言う。
4. コミット/プッシュ
コミットはファイルの追加・変更履歴をローカルリポジトリに保存すること。
プッシュはコミットで実行したファイル追加や変更履歴をリモートリポジトリにアップロードする操作。
5. プルリクエスト
ローカルリポジトリでの変更を他の開発者に伝える機能のこと。機能追加・改修内容などを一覧で確認できるため、確認しやすくなるということ。このログを確認しながらプルすると、間違いがないということになるのかな?(一旦自分だけで作業するのでこの機能を使えるかが微妙...)
6. フォーク
リポジトリのコピーのこと。元のプロジェクトに影響を与えずに変更が適用できる点が重要。
複数人のプロジェクトでのバグ修正について、フォーク→修正→プロジェクトの管理者にプルリクエスト といった行動が可能になる。
GitHubを始めてみる
まずは、Gitのインストールから...と言いたいところでしたが、既にGitのアプリが入っていたので、ここは割愛。
Gitの初期設定
1. Git Bashの起動
Gitのユーザ名、メールアドレスの設定を行う。以下のコードをGit Bashに打ち込んでいます。
git config --global user.name "ユーザー名"
git config --global user.email "メールアドレス"
"--global" の部分は、他に"--local", "--system"などがあるが、一旦Gitの環境全体での定義なので、上のコードで問題なし。
ちなみに、この設定が上手く行っているかは、以下のコマンドでそれぞれ確認しています。
git config user.name
git config user.email
GitHubの設定
基本的にCUIでやるのは、初心者にハードルが高いため、GUIベースのGitHubを使用していきます(SSHなど使用するとCUIベースにならざるを得ないところがあるので、いずれは覚えていきたいですが...)。
以下のサイトにアクセス
https://github.co.jp/
Sign in を行い、ユーザ名、メールアドレス、パスワードを登録し、メールアドレスに届くコードを打ち込んで完了。
リモートリポジトリの作成
GitHubのトップ画面で"Create Repository"をクリック。
すると、上のような画面が出るため、"Repository name"に作成したいリポジトリ名を入れます。今回は機械学習用に使用したいので、自分は"machine_learning"と入れています。
また、その下のラジオボタンは、ソースコードの公開可否になっています。Privateが非公開ですね。
READMEファイルを作成する場合は"Initialize this repository with a README"にチェックしておくと便利ですね。
他の内容の紹介は割愛しますが、以下のサイトに記載しています(コミットの際に変更を無視するファイルの指定や、ソフトウェアライセンスの追加ですね)
https://docs.github.com/ja/repositories/creating-and-managing-repositories/creating-a-new-repository
これでmachine_learningのブランチが作成されました。
ローカルリポジトリの作成
ローカルリポジトリとなるディレクトリを作成していきます。WindowsのPowerShellでmachine_learning用のフォルダを切ります。cdコマンドで切りたいディレクトリの上のフォルダまで行き、以下のコマンドを打ちます。
mkdir machine_learning
machine_learningディレクトリに移り、以下のコマンドを入力
git init
ローカルリポジトリにファイルをコミット
ローカルリポジトリに適当なファイルをコミットしていきます。machine_learningディレクトリ直下に適当なtxtファイルを作成し、以下のコマンドでコミットします。
git add test.txt
git commit -m "first commit"
リモートリポジトリにプッシュ
リモートリポジトリに先ほどのファイルをプッシュしていきます。ただし、まだGitHubをリモートリポジトリに指定していなかったので、そちらを先に実施します。
PowerShellで以下のコマンドを打ち込みます。
git remote add origin https://github.com/"ユーザID"/machine_learning.git
ちなみに、上のGitHubのurlは下図の部分に書かれているので参照してください。
最後にこちらのコマンドを打ち、push完了です。(masterの部分を使用するbranch名に変更可能)
git push origin master