Day 77:GitHub ― 「自分のコードを世界に置いてみる」
Day 77では、Gitの次の一歩として、
GitHub
を扱います。
今日のキーワードはこの5つです。
- リポジトリ
- push
- pull
- README
.gitignore
Gitが「ローカルでの履歴管理の仕組み」だとしたら、 GitHubはそれを インターネット上に広げる場所 です。
- 自分のコードをクラウドに置く
- 他の人と共有する
- チームで開発する
そんな場面で、GitHubはほぼ必ず登場します。
GitHubとリポジトリ ― 「コードの家」をクラウドに建てる
GitHubって何者?
GitHubは、
Gitで管理されたコードを、インターネット上でホストするサービス
です。
- 無料で使える
- ブラウザからコードが見られる
- IssueやPull Requestなど、チーム開発向けの機能が豊富
などの特徴があります。
「自分のコードを、ちゃんとした“作品”として置いておく場所」 というイメージを持ってもらうと、しっくりくるかもしれません。
リポジトリとは ― プロジェクトの「箱」
GitHubで中心になる概念が、
リポジトリ(repository)
です。
リポジトリは、ざっくり言うと、
「ひとつのプロジェクトを入れておく箱」
です。
- そのプロジェクトのファイル
- 変更履歴
- Issue(課題)
- Pull Request(変更提案)
- WikiやREADME
などが、ひとつのリポジトリにまとまります。
ローカルのGitでも「リポジトリ」という言葉は出てきましたが、 GitHubではそれが クラウド上の箱 として存在します。
GitHubにリポジトリを作る ― ブラウザでの最初の一歩
新しいリポジトリを作成する流れ(概念的な説明)
GitHubにログインした状態で、
- 右上あたりの「+」ボタンから「New repository」を選ぶ
- リポジトリ名を入力する(例:
day77-github-basic) - 公開範囲(Public / Private)を選ぶ
- 必要なら README を自動生成するチェックを入れる
- 「Create repository」ボタンを押す
これで、クラウド上に 空のリポジトリ ができます。
画面には、
- リポジトリ名
- URL(例:
https://github.com/ユーザー名/day77-github-basic) - 「Quick setup」的な説明
などが表示されるはずです。
このURLが、 「自分のコードの“住所”」 になります。
ローカルのGitとGitHubをつなぐ ― push と pull
ローカル側の準備(Day 76の続き)
Day 76で作ったフォルダを、 GitHubに載せるイメージで進めてみましょう。
例として、ローカルにこんなフォルダがあるとします。
bash
day77_github_basic/
└── main.py
main.py はこんな感じ。
# main.py
def main():
# GitHub練習用のメイン関数です。
print("Hello GitHub!")
print("Day 77: GitHub基礎を練習中")
if __name__ == "__main__":
main()
Pythonこのフォルダで、Gitを初期化しておきます。
bash
cd day77_github_basic
git init
git add main.py
git commit -m "Add main.py for GitHub practice"
ここまでで、
- ローカルにGitリポジトリがある
main.pyがコミットされている
という状態です。
リモートリポジトリを登録する ― git remote add
GitHubで作ったリポジトリのURLを、 ローカルのGitに教えてあげます。
例として、GitHubのURLがこうだとします。
https://github.com/yourname/day77-github-basic.git
これを「origin」という名前で登録します。
bash
git remote add origin https://github.com/yourname/day77-github-basic.git
remote:リモート(クラウド側)のリポジトリorigin:よく使われる「デフォルトのリモート名」
というイメージです。
push ― ローカル → GitHub へ「コードを送り出す」
push は、
「ローカルのコミットを、リモートリポジトリに送る」
操作です。
初回は、こんな感じで実行します。
bash
git push -u origin master
(ブランチ名が main の場合は master の代わりに main を使います)
origin:さきほど登録したリモート名master:ローカルのブランチ名-u:このブランチとリモートの対応関係を覚えさせるオプション
これが成功すると、
- GitHubのリポジトリ画面に
main.pyが表示される - コミット履歴も見られる
ようになります。
push のイメージ:
「ローカルで育てたコードを、 GitHubという“公開の場”に送り出す」
という感じです。
pull ― GitHub → ローカル へ「変更を取り込む」
pull は、
「リモートリポジトリの変更を、ローカルに取り込む」
操作です。
チーム開発で、他の人がGitHub上で変更を加えたときなどに使います。
基本形はこうです。
bash
git pull origin master
origin:リモート名master:ブランチ名
これを実行すると、
- GitHub上の最新コミットがローカルに取り込まれる
- 必要に応じてマージが行われる
という流れになります。
pull のイメージ:
「クラウド上の最新状態を、 自分の手元に反映させる」
という感じです。
README ― 「このリポジトリは何者か」を語る自己紹介
READMEって何を書くもの?
GitHubのリポジトリを見ると、 トップページに README.md が表示されていることが多いですよね。
READMEは、
「このリポジトリが何をするものなのか」を説明する自己紹介ファイル
です。
よく書かれる内容は、
- プロジェクトの概要
- 使い方(インストール方法、実行方法)
- 必要な環境(Pythonのバージョンなど)
- ライセンス
- 作者や連絡先
などです。
簡単な README の例
Day 77の練習用リポジトリに、 シンプルな README.md を作ってみましょう。
markdown
# Day 77 GitHub Basic
このリポジトリは、Python入門90日コースの Day 77 で使用する GitHub練習用プロジェクトです。
## 概要
- GitHubの基本的な使い方を練習するためのサンプルコード
- `main.py` を実行すると、簡単なメッセージが表示されます
## 実行方法
```bash
python main.py
ライセンス
学習用途のサンプルです。自由に参考にして構いません。
このファイルをリポジトリのルートに置いてコミットし、
GitHubにpushすると、
リポジトリのトップページにREADMEが表示されます。
**READMEの役割:**
> 「このプロジェクトが何者なのか」を、
> 初めて訪れた人に優しく伝える案内板
だと思ってもらうと、書きやすくなります。
---
## .gitignore ― 「これはGitに覚えさせなくていいよ」というリスト
### .gitignoreが必要になる場面
開発をしていると、
こんなファイルやフォルダが増えていきます。
- 一時ファイル(`*.tmp`)
- Pythonのキャッシュ(`__pycache__`)
- 仮想環境(`venv/`)
- ローカル設定ファイル(`.env` など)
これらは、
- コードそのものではない
- 環境ごとに違う
- GitHubに載せる必要がない(むしろ載せたくない)
ことが多いです。
そこで登場するのが、
> **`.gitignore`**
です。
### .gitignore の役割
`.gitignore` は、
> **「このパターンに当てはまるファイルは、Gitで追跡しないでね」**
というルールをまとめたファイルです。
例として、Pythonプロジェクト向けの簡単な `.gitignore` を作ってみます。
```gitignore
# .gitignore
# Pythonのキャッシュ
__pycache__/
*.pyc
# 仮想環境
venv/
# 環境変数ファイル(秘密情報が入ることが多い)
.env
このファイルをリポジトリのルートに置いておくと、
__pycache__フォルダvenvフォルダ.envファイル
などは、git status に出てこなくなります。
セキュリティ的に重要なポイント:
.envや秘密鍵ファイルなど、 秘密情報が入る可能性のあるファイルは、必ず.gitignoreに入れる- 誤ってGitHubに秘密情報をpushしてしまうと、 取り返しがつかないこともある
というところです。
Day 77ミニテンプレート ― GitHub一周セット
最後に、今日の内容をひとまとめにした 「GitHub一周練習テンプレート」 を載せておきます。
1. ローカルでプロジェクトを作る
bash
mkdir day77_github_basic
cd day77_github_basic
echo 'print("Hello GitHub!")' > main.py
# main.py
def main():
# GitHub練習用のメイン関数です。
print("Hello GitHub!")
print("Day 77: GitHub基礎を練習中")
if __name__ == "__main__":
main()
Python2. Gitを初期化してコミットする
bash
git init
git add main.py
git commit -m "Add main.py for GitHub practice"
3. README と .gitignore を追加する
bash
echo '# Day 77 GitHub Basic\n\nGitHub練習用のリポジトリです。' > README.md
bash
cat << 'EOF' > .gitignore
__pycache__/
*.pyc
venv/
.env
EOF
bash
git add README.md .gitignore
git commit -m "Add README and .gitignore"
4. GitHubにリポジトリを作り、リモートを登録する
GitHub上で day77-github-basic というリポジトリを作成し、 そのURLを使ってリモートを登録します。
bash
git remote add origin https://github.com/yourname/day77-github-basic.git
5. push して、GitHubにコードを送り出す
bash
git push -u origin master # ブランチ名が main の場合は main に変更
これで、
- GitHub上に
main.py/README.md/.gitignoreが表示される - ローカルの変更がクラウドに反映される
という、GitHub一周 が完了します。
Day 77のまとめ ― 「コードが、自分のPCの外に出ていく瞬間」
今日の主役は、
- リポジトリ:プロジェクトを入れておく「箱」
- push:ローカル → GitHub へ変更を送り出す
- pull:GitHub → ローカル へ変更を取り込む
- README:リポジトリの自己紹介・案内板
.gitignore:Gitに「これは覚えなくていいよ」と伝えるルール集
でした。
GitHubに初めてコードを載せるとき、 少しドキドキする人も多いです。
- 「こんなコードを公開していいのかな」
- 「ちゃんと動くかな」
そんな気持ちも、もちろん自然です。
でも、Day 77で触れたような、 小さくてシンプルな練習リポジトリからで構わないので、 「自分のコードを外の世界に置いてみる」 という経験をしてみると、
- コードが「作品」に見えてくる
- 自分の成長が、履歴として残っていく
- いつか誰かと一緒に開発したくなる
そんな感覚が、少しずつ育っていきます。
GitHubは、 ただのツールではなく、 「自分の開発の軌跡を、そっと並べておける場所」 でもあります。
Day 77でその扉を開けたことで、 これからの実践開発が、 ぐっと広い景色を持ち始めます。
