プログラミングを効率的に進めるために、コード管理は欠かせません。その中でもGitは、複数のバージョンを管理し、チーム開発や個人プロジェクトでも非常に役立つツールです。本記事では、PythonプロジェクトをGitで管理する方法を、初心者向けに分かりやすく解説します。Gitを使ってコードを整理し、安心してプロジェクトを進められるようになるための基本的な操作やワークフローを一緒に学びましょう!
GitとGitHubって何?
Gitは、ソフトウェア開発で使われるバージョン管理システムです。コードの変更履歴を追跡し、異なるバージョンを管理することで、開発の過程で過去の状態に戻ったり、複数の開発者が同時に作業することができます。
一方、GitHubはそのGitを利用して、コードをオンラインでホストできるプラットフォームです。GitHubを使うと、リモートで他の人と一緒に開発を進めたり、プロジェクトを公開して他の開発者と共有することができます。Gitはローカルで作業を
関連記事
ステップ1: リモートリポジトリの設定と操作
まずはGitHubにリモートリポジトリを作成し、それをローカル環境と連携させるところからスタートします。
GitHubでリポジトリを作成
GitHubにログインし、画面右上の「+」アイコンをクリックし、「New repository」を選択します。
リポジトリ名を入力し、「Create repository」をクリック。
このリポジトリがリモートリポジトリになります。
ローカルリポジトリを作成
ローカルにプロジェクトのディレクトリを作成し、その中でGitを初期化します。bash
1 2 3 |
mkdir my-python-project cd my-python-project git init |
ブランチの名前の変更
1 |
git branch -m main |
リモートリポジトリと接続
GitHubで作成したリポジトリのURLをコピーし、ローカルリポジトリに接続します
1 |
git remote add origin https://github.com/ユーザー名/リポジトリ名.git |
最初のコミットとプッシュ
まず、ファイルを作成し、それをコミットします
1 2 3 |
echo "# My Python Project" >> README.md git add README.md git commit -m "最初のコミット" |
コミットした内容をリモートリポジトリにプッシュします。
1 |
git push -u origin main |
Pythonファイルの作成
1 |
echo "print('Hello, Discord!')" > main.py |
.gitignore
ファイルの作成
不要なファイルをリポジトリに含めないための.gitignore
も非常に重要です。指定する内容をきちんと定義しましょう。
1 2 3 |
echo "__pycache__/" > .gitignore echo "*.pyc" >> .gitignore echo ".env" >> .gitignore |
ファイルをステージングmain.py
をGitの追跡対象にするために、次のコマンドを実行します
1 |
git add main.py |
コミットします
1 |
git commit -m "初期コミット - Discordボットのセットアップ" |
ステップ2: Pythonプロジェクトのバージョン管理手法
ファイル変更の管理とコミット
- コードの変更: Pythonファイルに変更を加えたら、変更をGitで管理するためにステージングしてコミットします。 例えば、
main.py
に以下のようにコードを追加してみます。
1 |
print("あなたと会えて嬉しいです") |
ブランチを使って新機能を追加する
- 新しい機能や実験的なコードを作成する際は、ブランチを作成して開発を進めるのが良い方法です。例えば、
new-feature
ブランチを作成して作業します。
1 |
git checkout -b new-feature |
ここでコードを変更し、コミットを続けます。作業が完了したら、メインブランチにマージします。
1 2 |
git checkout main git merge new-feature |
ステップ3: Gitの高度な操作とGitHub Actionsの導入
プロジェクト管理を次のレベルに引き上げたいと考えていますか?Gitの基本操作を習得した後は、さらに効率的に開発を進めるための高度な機能を活用することが重要です。ブランチの操作やリベース、マージなどの高度なGit操作を学びながら、GitHub Actionsを使って自動化プロセスを導入する方法を解説します。これにより、開発フローが一層スムーズになり、より高品質なコード管理が実現します。
タグを使ってバージョン管理
- 特定のリリースやバージョンにラベルを付けることで、プロジェクトの重要な状態を記録できます。例えば、リリースバージョンとして
v1.0.0
をタグ付けします。
1 2 |
git tag v1.0.0 git push origin v1.0.0 |
ステップ4:GitHub Actionsを使用したCI/CDの自動化
GitHub Actionsを使用することで、コードのテスト、ビルド、デプロイを自動化できます。これにより、プロジェクトの継続的インテグレーション(CI)を実現し、コードの品質を維持することが可能です。
1. GitHub リポジトリに .github/workflows
フォルダを作成する
GitHubで操作を行います
GitHub 上のリポジトリに移動し、リポジトリのルートディレクトリで「Create new file」をクリックします。
ファイル名の欄に次のように入力してフォルダを作成します
ファイル名にフォルダを含めるめて、ファイル名の入力欄に、フォルダ名/ファイル名
のように入力します(例: new-folder/example.txt
)。
1 |
.github/workflows/python-app.yml |
workflows/
フォルダの中に新しいファイルを作成し、ファイル名を python-app.yml
として作成します。
2. YAML ファイルにワークフローを定義
次に、作成した python-app.yml
ファイルに以下の内容をコピー&ペーストします。これは、Python プロジェクトで GitHub Actions を使って自動テストを実行するためのワークフローの定義です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
name: Python application on: push: branches: - main pull_request: branches: - main jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Run tests run: | pytest |
- これをリポジトリに追加し、プッシュすることで、コードがプッシュされるたびに自動でテストが実行されます。
3. 依存関係ファイル (requirements.txt) の作成
この作業は、GitHubではなくローカル環境で行います。
requirements.txt
ファイルの作成
Pythonパッケージのインストール確認: まず、プロジェクトで使用しているパッケージを確認します。例えば、pytest
を使ってテストを実行する場合、pytest
をインストールしていない場合は、以下のコマンドでインストールします。
1 |
pip install pytest |
requirements.txt
の作成: プロジェクトのルートディレクトリで requirements.txt
ファイルを作成します。既にインストールされているパッケージを自動的にリストアップするには、以下のコマンドを実行します。
1 |
pip freeze > requirements.txt |
このコマンドは、現在のPython環境でインストールされているすべてのパッケージとそのバージョンを requirements.txt
に書き込みます。
GitHubにプッシュする
ローカルリポジトリにコミット: 作成した requirements.txt
ファイルをGitHubにプッシュするために、まずローカルリポジトリに追加してコミットします。
以下のコマンドで requirements.txt
をGitに追加します。
1 |
git add requirements.txt |
変更をコミット
次に、コミットメッセージを付けてファイルをコミットします。
1 |
git commit -m "Add requirements.txt for dependencies" |
GitHubにプッシュ
最後に、リモートリポジトリ(GitHub)に変更をプッシュします。
1 |
git push origin main |
これで requirements.txt
がGitHubにプッシュされます
GitHubで確認
GitHubのリポジトリページに移動し、requirements.txt
がリポジトリ内に追加されたことを確認してください。
これで、他の開発者が requirements.txt
を使って、簡単にプロジェクトの依存関係をインストールすることができるようになります。
テストファイル (test_sample.py
) の作成
ローカルプロジェクトフォルダでファイルを作成
プロジェクトのディレクトリに移動し、test_sample.py
ファイルを作成します。例えば、以下のようにtouch
コマンドを使うか、エディタで新規ファイルを作成します。
1 |
touch test_sample.py |
テストコードを記述test_sample.py
ファイルに以下の簡単なテストコードを書き込みます。このテストでは、assert
文を使用して1 + 1
が2
であることを確認しています。
1 2 3 |
# test_sample.py def test_example(): assert 1 + 1 == 2 |
コミットしてプッシュ
すべての設定が終わったら、GitHubにプッシュします。これにより、GitHub Actions が自動でトリガーされ、ワークフローが実行されます。
1 2 3 |
git add . git commit -m "GitHub Actions の設定とテストコード追加" git push origin main |
ステップ5:GitHub Actions の確認
GitHubリポジトリの「Actions」タブを確認
- リポジトリのページで「Actions」タブをクリックします。
- 設定したワークフロー(例: "Python application")が表示され、そのステータスが「✔️Success」または「緑色のチェックマーク」で表示されているのが理想的な状態です。
ワークフローログの確認
- ワークフロー名をクリックすると、実行ログを見ることができます。正常に実行されている場合、以下のようなステップが含まれ、各ステップが成功していることがログで確認できます。
Set up job
: ジョブの設定が成功したか。Checkout code
: リポジトリのコードを正常に取得できたか。Set up Python
: Pythonの設定が成功したか。Install dependencies
:requirements.txt
に記載された依存関係が正常にインストールされたか。Run tests
:pytest
を使ったテストが実行され、すべてのテストが成功したか。
正常な状態では、ログの終わりに pytest
の結果が表示され、すべてのテストがパスした場合は次のように表示されます:
1 2 3 4 5 6 |
============================= test session starts ============================== collected 1 item test_sample.py . [100%] ============================== 1 passed in 0.02s =============================== |
成功したワークフローのインジケーター
- GitHub上で「Actions」タブや「コミット履歴」の横に、緑色のチェックマークがついているか確認します。これは、そのコミットに関連したテストがすべて成功したことを示しています。
まとめ
本記事では、PythonプロジェクトをGitで管理する基本的な手順から、リモートリポジトリとの連携、GitHub Actionsを使った自動テストの設定方法までを解説しました。Gitを活用することで、コードのバージョン管理がしやすくなり、特に複数人での開発やプロジェクトの成長に伴うコード管理がスムーズに行えるようになります。さらに、GitHub Actionsを導入することで、自動化されたテストやデプロイが可能になり、開発の効率化を図ることができます。
初めてのGit操作では不安もあるかもしれませんが、この記事を参考に、段階を追って実践していくことで、スムーズにGitやGitHubを使いこなせるようになるでしょう。ぜひ今回の内容を活かして、効率的なプロジェクト管理を始めてみてください!
もしわからないことがあれば、このブログやXに質問等を投げていただければと思います。
Xのアカウントはこちら
プログラミング学習を進めているけれど、まだ副収入につなげられていない…そんなあなたへ!今こそ、学んだスキルを活かして副業に挑戦する絶好のチャンスです。プログラミングだけでなく、自分のスキルや商品をネットで販売する『ネットショップ』を開設してみませんか?
ネットショップを持つことで、自分の知識やスキルをより多くの人に届け、副収入を得ることが可能です。学んできたプログラミングを活かして、ショップのカスタマイズや運営も自由自在に行えますし、もし商品作成が難しい場合でも、デジタル商品やサービス提供など、いろんな選択肢があります。
このステップで一歩踏み出せば、今学んでいることが副収入に直結し、自分の時間をより有効に使うことができるはずです!一緒にネットショップを開設し、副業の第一歩を踏み出しましょう!
タイトルテキスト
プログラミングを視覚的に理解したい方やプログラミングで絵を書いてみたい方はUdemyで講座も作っているのでこちらも参考にしてみてください
Udemy講座
ChatGPTでPythonの学習を始めてみたい方は以下の記事を参考にしてみてください
関連記事
プログラミングを学びたいけど、どこから始めたらいいのか分からない、自分に合っているか不安…そんな悩みを持っている方におすすめしたいのが、 無料相談 サービスです!
この無料相談では、あなたの現状や目標に合わせて、最適な学習プランを一緒に考えてくれます。どんなスキルが必要なのか、どうやって学習を進めると効果的かを具体的にアドバイスしてもらえるので、無駄なく効率的にスタートを切ることができます。
さらに、プログラミング学習には同じ目標を持つ 仲間 がいること、そして頼りになる メンター の存在がとても大きな支えになります。独学ではどうしてもつまずきやすい部分も、メンターがあなたの成長に合わせて親身にサポートしてくれるので、安心して学びを進められます。
まずは 無料相談 で、あなたに合ったプランを見つけて、スキルアップへの第一歩を踏み出してみませんか?今なら、迷っている方でも気軽に相談できるチャンスです!