【C級botter道】3話:Gitでコードのバージョン管理(python+docker+jupyterlab)
前回まではDocker + Docker-compose + jupyterlabでローカルでの開発環境を構築しました。
次はGitをインストールし、コードのバージョン管理をできるようにします。
Gitとは?
簡単にいうとコードのバージョン管理ができるツールです。
botを作っていると、「あれ、、、1週間前に作ったやつの方が精度良くね?」「色々改造しすぎてスパゲティコードなってきた」ということが往々にしてあると思います。
こういった問題を解決できる?のがGitだと私は思っています。
↓下記の記事がよくまとまっていました。
Gitのインストール
では、さっそくgitをインストールしましょう。
インストール先の環境としてはもちろんDockerコンテナ(mamuru_bot)です。
ですが、実はすでにGitはインストール済みです。
下記Dockerfileの6行目に"git"が書いてあります。
このDockerfileを実行した際に自動的にgitもインストールされていたということです。
FROM python:3.10.13
RUN apt-get update && \
apt-get install -y \
build-essential \
cmake \
git \
sudo \
wget \
vim
RUN pip install --upgrade pip
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt
# jupyter labインストール
RUN python -m pip install jupyterlab
WORKDIR /work
jupyter labでgitの確認
いや、ほんまかいな?ってツッコミはあると思いますので、jupyter-lab上で確認してみます。
jupyter-lab内でterminalを立ち上げて、下記コマンドを入力。
git --version
git version 2.39.2がインストールされていることが確認できます。
Gitの動作確認
無事にインストールされていることが確認できましたので、次にgitの動作確認を行っていきます。
下記のサイトを参考に初期設定、ローカルリポジトリの作成、コミットまでを行っていきます。
Gitの初期設定
初期設定として、ユーザー名&メールアドレスの2つを登録します。
ユーザー名の登録
git config --global user.name 任意のユーザー名
メールアドレスの登録
git config --global user.email 任意のメールアドレス
登録状況の確認
git config --list
(中略)
user.name=登録したユーザー名
user.email=登録したメールアドレス
ローカルリポジトリの作成
次にローカルリポジトリを作成します。
いわゆる、データ(コード)の保存場所のことです。
任意のディレクトリで下記コマンドを実行
git init
何が起きたかよくわからないと思いますので、ディレクトリ内を確認してみます。
ls -a
.git というディレクトリが作成されているのがわかるかと思います。
.gitというのはGitによるバージョン管理のための全てのメタデータとオブジェクトデータを含んでいます。
.git ディレクトリは、Gitリポジトリの状態や履歴を管理するために重要で、このディレクトリの内容を変更すると、リポジトリの整合性や履歴に影響を与える可能性があります。通常はユーザーが直接編集することは推奨されていません。
長々と書きましたが、普段特に気にする必要はありません。というか無駄に触ったりしないようにしましょう。
コミット
次にコミットをしてみましょう。
コミットすることにより、任意のファイル等をバージョン管理することができます。
また、今回は作業ディレクトリ配下の全てをコミットさせます。
git addコマンド
git add .
これにより作業ディレクトリ配下の全てがステージングに乗せることができました。
一応git statusで状況を確認しておきましょう。
git status
new file〜〜がステージングに乗っていることが確認できます。
次にコミットしましょう
git commit -m "first commit"
これまたよくわからないと思いますので、logを確認しましょう
git log
無事にコミットできていることが確認できるかと思います。
まとめ
Dockerfileに記載しているgitのインストールがされていることを確認した。
gitの初期設定〜ローカルリポジトリ〜コミットまでの動作確認を行った。
次回はGithubとの連携を行っていこうと思います。
この記事が気に入ったらサポートをしてみませんか?