🐈

Act 03. GitHubを使ったコードの管理

に公開

はじめに

Act 01. AIで外国為替を自動売買するまでの道のりをベースに学習を進めて行く。

以前はAct 02. WindowsでPythonの環境構築とバージョン管理を行うでPythonのバージョン管理を行ったが、今回はGitHubを用いたコードのバージョン管理を行う。

Windows11にWSL2をインストールして、Ubuntuの環境を構築している。
なので、今回はUbuntuにGitをインストールしていこうと思う。
ちなみにGitHubに登録するところからやっていくよ。

なんで何個もバージョン管理するの…?という人向けにChatGPTさんに質問してみた。
以下、ChatGPTさんの回答

GitHubは、ソフトウェア開発のためのウェブベースのプラットフォームで、Gitを使ってコードを管理・共有するサービスです。主な特徴は以下の通りです

  1. バージョン管理: ソースコードの変更履歴を管理。
  2. リポジトリ: プロジェクトごとにコードやファイルを保存。
  3. コラボレーション: 複数の開発者が同時に作業可能(ブランチやプルリクエストを利用)。
  4. イシュートラッキング: バグや機能のリクエストを管理。
  5. 自動化: GitHub ActionsでCI/CDを自動化。

pyenvとは管理するバージョンの内容が違うね。

いつも通り、基本的に他人の記事を参考にしていこうと思う。
良い記事は広めていこうということで…(すみません)

GitHubにアカウントを作成

この記事が古くなると設定の流れは変わるだろうから注意。
こんな事したんだなくらいの気分で。

  1. 公式ページのサインアップ画面に行く
  2. メールアドレス、パスワード、ユーザ名を入力
  3. 検証を行う
  4. メールアドレスに送られた6桁のコードを入力
  5. 自分の状態とチームメンバーを設定
    ※なんでも良いが、Working developerJust meを選択
  6. GitHubでやりたいことは何か聞かれたから無視して次へ
  7. 無料版か有料版どっち使うか聞かれるから無料版を選択
  8. ダッシュボードが表示されればアカウント作成完了

GitHubリポジトリの作成

リポジトリとは、プロジェクトごとにコードやファイルを保存する場所。
初めてリポジトリを作成する場合は、サイドメニューにCreate Repositoryと記載されているはず。
ない場合は画面右上の+からnew repositoryを選択。

適当にリポジトリ名を設定してCreate Repositoryをクリックする。
自分の場合はtestというリポジトリ名にしてみた。他はデフォルトの設定値。

準備は出来たから実際にファイルをリポジトリにアップロードしてみる。

Gitインストール

ファイルをアップロードする前に、まずはubuntuにgitのインストールをしないといけない。
Ubuntu git ~ github連携までを参考にした。

一応、記事が削除された時ようにメモを残しておく。
また、GitHubとの連携はHTTPSかSSHで行えるが、今回はSSHを使用する。(基本こっちが使われる)
比較表は以下の通り。

HTTPS/SSH メリット デメリット
HTTPS ・設定が簡単 ・毎回のパスワード入力
・セキュリティリスクが低い
SSH ・セキュリティが高い
・パスワード不要
・自動化が容易
・初期設定が必要
  1. gitインストール

    sudo apt install git
    
  2. ユーザー設定
    ※<名前>と<メールアドレス>は修正する
    ※<>は不要なので削除してよし

    $ git config --global user.name <名前>
    $ git config --global user.email <メールアドレス>
    
  3. SSHキーの作成
    ※<メールアドレス>は修正する
    ※<>は不要なので削除してよし

    ### 以下のコマンドを実行する
    ssh-keygen -t rsa -C "<メールアドレス>"
    
    ### 以下の内容が出力される
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/onishi/.ssh/id_rsa):  ### 1.何も入力しないでEnter
    Created directory '/home/onishi/.ssh'.
    Enter passphrase (empty for no passphrase):   ### 2.パスワード1回目
    Enter same passphrase again:    ### 3.パスワード2回目(1回目と同じパスワード)
    Your identification has been saved in /home/onishi/.ssh/id_rsa
    Your public key has been saved in /home/onishi/.ssh/id_rsa.pub
    The key fingerprint is:
    SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/XXXX XXXXXXXXXXXX@gmail.com
    The key's randomart image is:
    +---[RSA 3072]----+
    |          .   .+*|
    |         . x x.+O|
    |        . = . *vB|
    |         = . s e.|
    |        f = .    |
    |      =  f w  .o.|
    |     . =o + = Eo+|
    |      **.* . .+ .|
    |      .oef.=.o.o |
    +----[SHA256]-----+
    
  4. 公開鍵のコピー
    以下のコマンドでファイルの内容をクリップボードにコピーする

    cat ~/.ssh/id_rsa.pub | clip.exe
    
  5. GitHubのページを開く

  6. 画面右上のアカウントアイコンをクリックしSettings選択

  7. SSH and GPG keysを選択

  8. New SSHKeyを選択

  9. タイトル(分かりやすいもの)を入力し、keyにコピーしたものをペーストする

  10. Add SSH Keyをクリック

  11. Ubuntuで以下のコマンドを実行する
    ※コマンド実行後にyesと入力し、SSHキーを作る時に設定したパスワードを入力

    ssh -T git@github.com
    
  12. SSHエージェントを使って、SSHキーをキャッシュ
    ※id_rsaの部分は実際のキー名に置き換える(同じ手順なら置き換え不要)
    ssh-addコマンド実行後にSSHキー作成時に設定したパスワードを入力

    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_rsa
    

GitHubにファイルをアップロード

  1. GitHubの作成したリポジトリの画面を開く
    ※画面右上のアカウントアイコンからYour Repositoryを選択すれば開ける

  2. 赤枠の文字列をコピー
    ※HTTPSからSSHに変更すること!

  3. クローンを作成
    ※<コピーした内容>はgit@github.com:ユーザ名/test.gitを張り付ける
    ※<>は不要なので削除してよし

    git clone <コピーした内容>
    
  4. クローンしたフォルダに移動しファイルを作成する
    ※<>は不要なので削除してよし
    ※自分の場合はtestというリポジトリ名

    cd <リポジトリ名>
    
  5. テストファイルの作成

    echo "hello git" > test.txt
    
  6. リポジトリにプッシュ
    ※それぞれのコマンドの意味は自分で調べて

    git add .
    git commit -m "init"
    git push origin main
    
  7. ファイルの確認
    GitHubの画面をリロードすると、test.txtファイルが追加されている。
    内容はhello gitとなっているはず。

  8. ファイルの修正
    Ubuntuで以下のコマンドを実行しファイルにmod txt fileという文字列を追加する

    echo "mod txt file" >> test.txt
    
  9. リポジトリにプッシュ

    git add .
    git commit -m "mod"
    git push origin main
    
  10. ファイルの確認
    GitHubの画面をリロードすると、test.txtファイルが修正されている。
    内容はmod txt fileが追加されているはず。

    CodeBlameに変更すると、変更履歴が確認できる。

さいごに

GitHubを使っていれば、PCが壊れてもコードを失わずに済む。
理解はしていたけど記事にすると知識も整理されるからアウトプット最高ね。

ではまた

Discussion