|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "acad15f3164cd6348e065ff38619aae9",
|
|
|
"translation_date": "2025-10-24T14:55:06+00:00",
|
|
|
"source_file": "1-getting-started-lessons/2-github-basics/README.md",
|
|
|
"language_code": "ja"
|
|
|
}
|
|
|
-->
|
|
|
# GitHubの紹介
|
|
|
|
|
|
こんにちは、未来の開発者さん!👋 世界中の何百万ものコーダーに仲間入りする準備はできていますか?GitHubを紹介するのが本当に楽しみです。これはプログラマー向けのソーシャルメディアプラットフォームのようなもので、ランチの写真を共有する代わりにコードを共有して一緒に素晴らしいものを作り上げるんです!
|
|
|
|
|
|
驚くべきことに、あなたのスマホのアプリ、訪れるウェブサイト、そして学ぶツールのほとんどは、GitHubのようなプラットフォームで開発者たちが協力して作り上げたものです。お気に入りの音楽アプリ?それに貢献した人がいるんです。やめられないゲーム?そう、GitHubでのコラボレーションで作られた可能性が高いです。そして今、あなたもその素晴らしいコミュニティの一員になる方法を学ぶんです!
|
|
|
|
|
|
最初は少し難しく感じるかもしれませんね。私も最初のGitHubページを見たとき、「これって一体何のこと?」と思ったのを覚えています。でも、覚えておいてください:すべての開発者が今のあなたと同じ場所から始めています。このレッスンが終わる頃には、あなた自身のGitHubリポジトリ(クラウド上の個人プロジェクトのショーケースのようなもの)を持ち、作業を保存し、他の人と共有し、さらには何百万人が使うプロジェクトに貢献する方法を知ることができるでしょう。
|
|
|
|
|
|
一歩ずつ一緒に進んでいきましょう。急がず、プレッシャーもなしで、これからあなたの新しい親友になる本当にクールなツールを楽しみながら学びましょう!
|
|
|
|
|
|

|
|
|
> スケッチノート提供:[Tomomi Imura](https://twitter.com/girlie_mac)
|
|
|
|
|
|
## レクチャー前のクイズ
|
|
|
[レクチャー前のクイズ](https://ff-quizzes.netlify.app)
|
|
|
|
|
|
## はじめに
|
|
|
|
|
|
本当にワクワクする内容に入る前に、GitHubの魔法を使う準備をしましょう!これは、傑作を作る前にアート用品を整理するようなものです。適切なツールを準備することで、すべてがスムーズになり、もっと楽しくなります。
|
|
|
|
|
|
セットアップの各ステップを個人的に案内しますが、最初は少し難しく見えるかもしれません。でも心配しないでください!すぐに慣れます。最初の開発環境をセットアップしたとき、古代の象形文字を読もうとしているように感じたのを覚えています。すべての開発者が今のあなたと同じ場所に立ち、「これで合っているのかな?」と考えたことがあるんです。ヒントを言うと、学んでいる時点で、すでに正しい道を進んでいます!🌟
|
|
|
|
|
|
このレッスンでは以下を学びます:
|
|
|
|
|
|
- 自分のマシンで行った作業を追跡する方法
|
|
|
- 他の人とプロジェクトを進める方法
|
|
|
- オープンソースソフトウェアに貢献する方法
|
|
|
|
|
|
### 前提条件
|
|
|
|
|
|
GitHubの魔法を使う準備をしましょう!心配しないでください。このセットアップは一度だけ行えば、コーディングの旅全体で使えるようになります。
|
|
|
|
|
|
まずは基礎から始めましょう!最初にGitがすでにコンピュータにインストールされているか確認する必要があります。Gitは、コードに加えたすべての変更を覚えてくれる超賢いアシスタントのようなものです。Ctrl+Sを何度も押すよりずっと便利です(みんな経験ありますよね!)。
|
|
|
|
|
|
ターミナルで以下の魔法のコマンドを入力して、Gitがインストールされているか確認しましょう:
|
|
|
`git --version`
|
|
|
|
|
|
もしGitがまだインストールされていなければ、心配しないでくださいしてインストールしてください。インストールが完了したら、Gitにあなたを紹介する必要があります:
|
|
|
|
|
|
> 💡 **初回セットアップ**: これらのコマンドはGitにあなたが誰であるかを伝えます。この情報はあなたが行うすべてのコミットに添付されるので、公開しても問題ない名前とメールアドレスを選びましょう。
|
|
|
|
|
|
```bash
|
|
|
git config --global user.name "your-name"
|
|
|
git config --global user.email "your-email"
|
|
|
```
|
|
|
|
|
|
Gitがすでに設定されているか確認するには以下を入力します:
|
|
|
```bash
|
|
|
git config --list
|
|
|
```
|
|
|
|
|
|
また、GitHubアカウント、コードエディタ(Visual Studio Codeなど)、そしてターミナル(またはコマンドプロンプト)を開く必要があります。
|
|
|
|
|
|
[github.com](https://github.com/)にアクセスして、まだアカウントを作成していない場合は作成するか、ログインしてプロフィールを埋めてください。
|
|
|
|
|
|
💡 **最新のヒント**: [SSHキー](https://docs.github.com/en/authentication/connecting-to-github-with-ssh)を設定するか、[GitHub CLI](https://cli.github.com/)を使用して、パスワードなしで簡単に認証する方法を検討してください。
|
|
|
|
|
|
✅ GitHubは世界で唯一のコードリポジトリではありません。他にもありますが、GitHubが最もよく知られています。
|
|
|
|
|
|
### 準備
|
|
|
|
|
|
ローカルマシン(ノートパソコンやPC)にコードプロジェクトのフォルダと、GitHub上の公開リポジトリが必要です。これらは他の人のプロジェクトに貢献する方法を学ぶための例として使用します。
|
|
|
|
|
|
### コードを安全に保つ
|
|
|
|
|
|
セキュリティについて少し話しましょう。でも心配しないでください、怖い話をするわけではありません!これらのセキュリティプラクティスは、車や家に鍵をかけるようなものです。簡単な習慣で、自然に身につき、あなたの大切な作業を守ることができます。
|
|
|
|
|
|
GitHubを使う際には、最初から安全な方法で作業する方法をお見せします。これにより、コーディングキャリア全体で役立つ良い習慣を身につけることができます。
|
|
|
|
|
|
GitHubを使用する際には、以下のセキュリティベストプラクティスを守ることが重要です:
|
|
|
|
|
|
| セキュリティ領域 | ベストプラクティス | 重要性 |
|
|
|
|------------------|------------------|------------------|
|
|
|
| **認証** | SSHキーまたは個人アクセストークンを使用 | パスワードは安全性が低く、廃止されつつある |
|
|
|
| **二要素認証** | GitHubアカウントで2FAを有効化 | アカウント保護の追加層を提供 |
|
|
|
| **リポジトリのセキュリティ** | 機密情報をコミットしない | APIキーやパスワードを公開リポジトリに含めない |
|
|
|
| **依存関係管理** | Dependabotを有効化 | 依存関係を安全かつ最新に保つ |
|
|
|
|
|
|
> ⚠️ **重要なセキュリティの注意**: APIキー、パスワード、その他の機密情報をリポジトリにコミットしないでください。環境変数や`.gitignore`ファイルを使用して機密データを保護しましょう。
|
|
|
|
|
|
**最新の認証セットアップ:**
|
|
|
|
|
|
```bash
|
|
|
# Generate SSH key (modern ed25519 algorithm)
|
|
|
ssh-keygen -t ed25519 -C "your_email@example.com"
|
|
|
|
|
|
# Set up Git to use SSH
|
|
|
git remote set-url origin git@github.com:username/repository.git
|
|
|
```
|
|
|
|
|
|
> 💡 **プロのヒント**: SSHキーはパスワードを繰り返し入力する必要がなく、従来の認証方法よりも安全です。
|
|
|
|
|
|
---
|
|
|
|
|
|
## プロのようにコードを管理する
|
|
|
|
|
|
さて、ここからが本当にエキサイティングな部分です!🎉 これからプロのようにコードを追跡・管理する方法を学びます。正直言って、これを教えるのが大好きです。なぜなら、これが本当にゲームチェンジャーだからです。
|
|
|
|
|
|
想像してみてください:素晴らしい物語を書いていて、すべての草稿、素晴らしい編集、そして「待って、それは天才的だ!」という瞬間を記録したいと思うでしょう。それがGitがコードに対して行うことです!すべてのキー入力、変更、「あっ、全部壊れた!」という瞬間を即座に元に戻せる、最も素晴らしいタイムトラベルノートのようなものです。
|
|
|
|
|
|
正直に言うと、最初は圧倒されるかもしれません。私も「普通にファイルを保存するだけじゃダメなの?」と思ったことがあります。でもこれだけは信じてください:Gitが理解できるようになると(必ずそうなります!)、あなたは「どうしてこれまでこれなしでコーディングしていたんだろう?」と思うでしょう。それは、歩いていた人生で飛べることを発見するようなものです!
|
|
|
|
|
|
ローカルにコードプロジェクトのフォルダがあり、その進捗をバージョン管理システムであるgitを使って追跡したいとします。gitを使うことは、未来の自分へのラブレターを書くようなものだと例えられることがあります。数日、数週間、数か月後にコミットメッセージを読むことで、なぜその決定をしたのかを思い出したり、変更を「巻き戻す」ことができます。つまり、良い「コミットメッセージ」を書くときです。
|
|
|
|
|
|
### タスク: 初めてのリポジトリを作成しよう!
|
|
|
|
|
|
> 🎯 **あなたのミッション(とてもワクワクします!)**: 一緒に初めてのGitHubリポジトリを作成しましょう!これが終わる頃には、あなたのコードが住むインターネット上の小さなコーナーを持ち、初めての「コミット」(これは作業を非常に賢い方法で保存することを意味します)を行います。
|
|
|
>
|
|
|
> これは本当に特別な瞬間です。あなたは正式に世界中の開発者コミュニティに参加することになります!私も初めてリポジトリを作成したときの興奮を覚えています。「わあ、本当にこれをやってるんだ!」と思いました。
|
|
|
|
|
|
この冒険を一緒に進めていきましょう。一つ一つのステップをゆっくり進めてください。急ぐ必要はありません。すべてのステップが意味を持つことを約束します。覚えておいてください、あなたが憧れるすべてのコーディングスターは、かつてあなたと同じ場所に座り、初めてのリポジトリを作成しようとしていました。なんて素晴らしいことでしょう!
|
|
|
|
|
|
> 動画をチェック
|
|
|
>
|
|
|
> [](https://www.youtube.com/watch?v=9R31OUPpxU4)
|
|
|
|
|
|
**一緒にやってみましょう:**
|
|
|
|
|
|
1. **GitHubでリポジトリを作成する**。GitHub.comにアクセスし、明るい緑色の**New**ボタン(または右上の**+**記号)を探します。それをクリックして**New repository**を選択します。
|
|
|
|
|
|
以下を行います:
|
|
|
1. リポジトリに名前を付けます – あなたにとって意味のある名前にしましょう!
|
|
|
1. 必要なら説明を追加します(これにより他の人がプロジェクトの内容を理解しやすくなります)
|
|
|
1. 公開(誰でも見られる)か非公開(自分だけ)かを選択します
|
|
|
1. READMEファイルを追加するチェックボックスをおすすめします – これはプロジェクトの表紙のようなものです
|
|
|
1. **Create repository**をクリックしてお祝いしましょう – 初めてのリポジトリを作成しました!🎉
|
|
|
|
|
|
2. **プロジェクトフォルダに移動する**。次にターミナルを開きましょう(見た目ほど怖くありません!)。コンピュータにプロジェクトファイルの場所を教える必要があります。このコマンドを入力してください:
|
|
|
|
|
|
```bash
|
|
|
cd [name of your folder]
|
|
|
```
|
|
|
|
|
|
**ここで何をしているか:**
|
|
|
- コンピュータに「プロジェクトフォルダに移動して」と伝えています
|
|
|
- デスクトップ上の特定のフォルダを開くようなものですが、テキストコマンドで行っています
|
|
|
- `[name of your folder]`を実際のプロジェクトフォルダ名に置き換えてください
|
|
|
|
|
|
3. **フォルダをGitリポジトリに変える**。ここで魔法が起こります!以下を入力してください:
|
|
|
|
|
|
```bash
|
|
|
git init
|
|
|
```
|
|
|
|
|
|
**ここで何が起こったか(かなりクールなこと!):**
|
|
|
- Gitがプロジェクト内に隠し`.git`フォルダを作成しました – 見えませんが存在しています!
|
|
|
- 通常のフォルダが「リポジトリ」に変わり、あなたが行うすべての変更を追跡できるようになりました
|
|
|
- フォルダにすべてを覚えるスーパーパワーを与えたようなものです
|
|
|
|
|
|
4. **現在の状況を確認する**。Gitがプロジェクトについてどう思っているか見てみましょう:
|
|
|
|
|
|
```bash
|
|
|
git status
|
|
|
```
|
|
|
|
|
|
**Gitが教えてくれることを理解する:**
|
|
|
|
|
|
以下のようなものが表示されるかもしれません:
|
|
|
|
|
|
```output
|
|
|
Changes not staged for commit:
|
|
|
(use "git add <file>..." to update what will be committed)
|
|
|
(use "git restore <file>..." to discard changes in working directory)
|
|
|
|
|
|
modified: file.txt
|
|
|
modified: file2.txt
|
|
|
```
|
|
|
|
|
|
**慌てないでください!これはこういう意味です:**
|
|
|
- **赤色**のファイルは変更があるがまだ保存する準備ができていないファイルです
|
|
|
- **緑色**のファイル(表示される場合)は保存する準備ができているファイルです
|
|
|
- Gitは次に何をすればいいかを正確に教えてくれています
|
|
|
|
|
|
> 💡 **プロのヒント**: `git status`コマンドはあなたの親友です!混乱したときはいつでも使ってください。Gitに「今の状況はどう?」と尋ねるようなものです。
|
|
|
|
|
|
5. **ファイルを保存する準備をする**(これを「ステージング」と呼びます):
|
|
|
|
|
|
```bash
|
|
|
git add .
|
|
|
```
|
|
|
|
|
|
**ここで何をしたか:**
|
|
|
- Gitに「このフォルダ内のすべてのファイルを次の保存に含めたい」と伝えました
|
|
|
- `.`は「このフォルダ内のすべて」を意味します
|
|
|
- ファイルが「ステージング」され、次のステップの準備が整いました
|
|
|
|
|
|
**もっと選択的になりたい場合:** 特定のファイルだけを追加することもできます:
|
|
|
|
|
|
```bash
|
|
|
git add [file or folder name]
|
|
|
```
|
|
|
|
|
|
**なぜこれをするのか:**
|
|
|
- 関連する変更をまとめて保存したい場合があります
|
|
|
- 作業を論理的な塊に整理するのに役立ちます
|
|
|
- 何がいつ変更されたかを理解しやすくなります
|
|
|
|
|
|
**気が変わった場合:** 心配しないでください!以下のようにしてファイルをステージングから外すことができます:
|
|
|
|
|
|
```bash
|
|
|
# Unstage everything
|
|
|
git reset
|
|
|
|
|
|
# Unstage just one file
|
|
|
git reset [file name]
|
|
|
```
|
|
|
|
|
|
心配しないでください – これは作業を削除するわけではなく、「保存準備」からファイルを外すだけです。
|
|
|
|
|
|
6. **作業を永久に保存する**(初めてのコミットを作成!):
|
|
|
|
|
|
```bash
|
|
|
git commit -m "first commit"
|
|
|
```
|
|
|
|
|
|
**🎉 おめでとうございます!初めてのコミットを作成しました!**
|
|
|
|
|
|
**ここで何が起こったか:**
|
|
|
- Gitがこの瞬間にステージングされたすべてのファイルの「スナップショット」を撮りました
|
|
|
- コミットメッセージ「first commit」はこの保存ポイントが何であるかを説明しています
|
|
|
- GitがこのスナップショットにユニークなIDを付けたので、後でいつでも見つけることができます
|
|
|
- プロジェクトの履歴を追跡し始めました!
|
|
|
|
|
|
> 💡 **次回のコミットメッセージ**: 次回のコミットではもっと具体的にしましょう!「updated stuff」ではなく、「Add contact form to homepage」や「Fix navigation menu bug」のように。未来の自分が感謝します!
|
|
|
|
|
|
7. **ローカルプロジェクトをGitHubに接続する**。現在、プロジェクトはあなたのコンピュータにしか存在していません。これをGitHubリポジトリに接続して、世界と共有しましょう!
|
|
|
|
|
|
まず、GitHubリポジトリページに移動してURLをコピーします。そしてここに戻って以下を入力してください:
|
|
|
|
|
|
```bash
|
|
|
git remote add origin https://github.com/username/repository_name.git
|
|
|
```
|
|
|
|
|
|
(そのURLを実際のリポジトリURLに置き換
|
|
|
- ローカルプロジェクトとGitHubリポジトリの間に接続を作成しました
|
|
|
- "Origin"はGitHubリポジトリのニックネームのようなものです。電話帳に連絡先を追加するような感覚です
|
|
|
- これでローカルGitは、コードを共有する準備ができたときにどこに送るべきかを知っています
|
|
|
|
|
|
💡 **簡単な方法**: GitHub CLIをインストールしている場合、これを1つのコマンドで実行できます:
|
|
|
```bash
|
|
|
gh repo create my-repo --public --push --source=.
|
|
|
```
|
|
|
|
|
|
8. **コードをGitHubに送る**(いよいよ大事な瞬間!):
|
|
|
|
|
|
```bash
|
|
|
git push -u origin main
|
|
|
```
|
|
|
|
|
|
**🚀 これでコードをGitHubにアップロードします!**
|
|
|
|
|
|
**何が起きているか:**
|
|
|
- コミットがコンピュータからGitHubへ移動しています
|
|
|
- `-u`フラグは永続的な接続を設定し、次回以降のプッシュを簡単にします
|
|
|
- "main"は主要なブランチの名前です(メインフォルダのようなもの)
|
|
|
- これ以降、次回のアップロードでは`git push`だけで済みます!
|
|
|
|
|
|
💡 **注意**: ブランチ名が「master」など別の名前の場合、その名前を使用してください。`git branch --show-current`で確認できます。
|
|
|
|
|
|
9. **新しい日常のコーディングリズム**(これがクセになります!):
|
|
|
|
|
|
これからは、プロジェクトに変更を加えるたびに、以下の簡単な3ステップを繰り返します:
|
|
|
|
|
|
```bash
|
|
|
git add .
|
|
|
git commit -m "describe what you changed"
|
|
|
git push
|
|
|
```
|
|
|
|
|
|
**これがコーディングの心拍リズムになります:**
|
|
|
- コードに素晴らしい変更を加える ✨
|
|
|
- `git add`でステージングする(「Gitさん、この変更に注目してください!」)
|
|
|
- `git commit`と説明的なメッセージで保存する(未来の自分が感謝します!)
|
|
|
- `git push`で世界と共有する 🚀
|
|
|
- 繰り返し – 本当に、これが自然に感じるようになります!
|
|
|
|
|
|
このワークフローが好きなのは、ビデオゲームのセーブポイントを複数持つような感覚だからです。気に入った変更をしたらコミット!リスクのあることを試したい?問題ありません – もしうまくいかなかったら、最後のコミットに戻ることができます!
|
|
|
|
|
|
> 💡 **ヒント**: `.gitignore`ファイルを採用して、GitHubに追跡したくないファイルが表示されないようにすることを検討してください。例えば、同じフォルダに保存しているけれど公開リポジトリには不要なメモファイルなどです。`.gitignore`ファイルのテンプレートは[.gitignore templates](https://github.com/github/gitignore)で見つけるか、[gitignore.io](https://www.toptal.com/developers/gitignore)を使って作成できます。
|
|
|
|
|
|
#### モダンなGitワークフロー
|
|
|
|
|
|
以下のモダンなプラクティスを採用することを検討してください:
|
|
|
|
|
|
- **Conventional Commits**: `feat:`, `fix:`, `docs:`などの標準化されたコミットメッセージ形式を使用する。詳細は[conventionalcommits.org](https://www.conventionalcommits.org/)で学べます
|
|
|
- **Atomic commits**: 各コミットを単一の論理的変更を表すものにする
|
|
|
- **頻繁なコミット**: 大きくて頻度の少ないコミットよりも、頻繁に説明的なメッセージでコミットする
|
|
|
|
|
|
#### コミットメッセージ
|
|
|
|
|
|
優れたGitコミットの件名は次の文を完成させます:
|
|
|
このコミットを適用すると、<ここに件名を記入>
|
|
|
|
|
|
件名には命令形の現在形を使用します: "change"(変更する)であり、"changed"(変更した)でも"changes"(変更する)でもありません。
|
|
|
件名と同様に、本文(オプション)でも命令形の現在形を使用します。本文には変更の動機を含め、これを以前の動作と対比させます。`どうやって`ではなく、`なぜ`を説明します。
|
|
|
|
|
|
✅ GitHubを少し探索してみてください。素晴らしいコミットメッセージを見つけられますか?非常に簡素なものを見つけられますか?コミットメッセージで伝えるべき最も重要で有用な情報は何だと思いますか?
|
|
|
|
|
|
## 他の人と一緒に作業する(楽しい部分!)
|
|
|
|
|
|
これからGitHubが本当に魔法のようになる部分に突入します!🪄 自分のコードを管理するスキルを習得しましたが、今度は私が最も好きな部分 – 世界中の素晴らしい人々とコラボレーションすることに飛び込みます。
|
|
|
|
|
|
想像してみてください: 明日目を覚ますと、東京の誰かがあなたのコードを改善してくれています。ベルリンの誰かがあなたが行き詰まっていたバグを修正してくれます。午後には、サンパウロの開発者があなたが思いつかなかった機能を追加してくれます。それはSFではありません – それはGitHubの世界では普通の火曜日です!
|
|
|
|
|
|
私が本当に興奮するのは、これから学ぶコラボレーションスキルが、Google、Microsoft、そしてあなたのお気に入りのスタートアップのチームが毎日使っているのと全く同じワークフローだということです。あなたは単なるクールなツールを学ぶだけでなく、ソフトウェアの世界全体が協力するための秘密の言語を学んでいるのです。
|
|
|
|
|
|
本当に、最初のプルリクエストがマージされる瞬間の興奮を経験すれば、なぜ開発者がオープンソースに情熱を注ぐのかが理解できるでしょう。それは世界最大で最もクリエイティブなチームプロジェクトの一員になるようなものです!
|
|
|
|
|
|
> 動画をチェック
|
|
|
>
|
|
|
> [](https://www.youtube.com/watch?v=bFCM-PC3cu8)
|
|
|
|
|
|
GitHubにコードを置く主な理由は、他の開発者とコラボレーションできるようにすることです。
|
|
|
|
|
|
リポジトリで`Insights > Community`に移動して、プロジェクトが推奨されるコミュニティ標準とどのように比較されるかを確認してください。
|
|
|
|
|
|
リポジトリをプロフェッショナルで魅力的に見せたいですか?リポジトリに移動して`Insights > Community`をクリックしてください。この便利な機能を使えば、プロジェクトがGitHubコミュニティで「良いリポジトリのプラクティス」とされるものとどのように比較されるかを確認できます。
|
|
|
|
|
|
> 🎯 **プロジェクトを輝かせる**: 良く整理されたリポジトリと良いドキュメントは、清潔で歓迎的な店舗のようなものです。それはあなたが自分の仕事を大切にしていることを示し、他の人が貢献したいと思わせます!
|
|
|
|
|
|
**素晴らしいリポジトリを作るための要素:**
|
|
|
|
|
|
| 追加するもの | なぜ重要か | あなたにとってのメリット |
|
|
|
|-------------|-------------------|---------------------|
|
|
|
| **説明** | 第一印象が重要! | プロジェクトが何をするのかすぐに分かる |
|
|
|
| **README** | プロジェクトの表紙 | 新しい訪問者のための親切なガイド |
|
|
|
| **貢献ガイドライン** | 助けを歓迎していることを示す | どのように助けられるかが明確になる |
|
|
|
| **行動規範** | フレンドリーな空間を作る | 誰もが参加しやすいと感じる |
|
|
|
| **ライセンス** | 法的な明確さ | 他の人がコードをどのように使用できるかが分かる |
|
|
|
| **セキュリティポリシー** | 責任感を示す | プロフェッショナルなプラクティスを示す |
|
|
|
|
|
|
> 💡 **プロのヒント**: GitHubはこれらのファイルのテンプレートを提供しています。新しいリポジトリを作成する際に、これらのファイルを自動生成するチェックボックスを確認してください。
|
|
|
|
|
|
**モダンなGitHub機能を探索する:**
|
|
|
|
|
|
🤖 **自動化 & CI/CD:**
|
|
|
- **GitHub Actions**で自動テストとデプロイ
|
|
|
- **Dependabot**で依存関係の自動更新
|
|
|
|
|
|
💬 **コミュニティ & プロジェクト管理:**
|
|
|
- **GitHub Discussions**で問題以外のコミュニティ会話
|
|
|
- **GitHub Projects**でカンバンスタイルのプロジェクト管理
|
|
|
- **ブランチ保護ルール**でコード品質基準を強制
|
|
|
|
|
|
これらのリソースは新しいチームメンバーのオンボーディングに役立ちます。そして、これらは通常、新しいコントリビューターがコードを見る前にプロジェクトが自分の時間を費やす価値があるかどうかを判断するために見るものです。
|
|
|
|
|
|
✅ READMEファイルは準備に時間がかかるものの、忙しいメンテナーによってしばしば軽視されます。特に説明的なREADMEの例を見つけられますか?注: [良いREADMEを作成するためのツール](https://www.makeareadme.com/)も試してみると良いかもしれません。
|
|
|
|
|
|
### タスク: コードをマージする
|
|
|
|
|
|
貢献ドキュメントは人々がプロジェクトに貢献するのを助けます。それはどのような種類の貢献を求めているか、そしてプロセスがどのように機能するかを説明します。コントリビューターはGitHubでリポジトリに貢献するために一連のステップを経る必要があります:
|
|
|
|
|
|
1. **リポジトリをフォークする**。人々にプロジェクトをフォークするように求めることが一般的です。フォークとは、リポジトリの複製を自分のGitHubプロフィールに作成することを意味します。
|
|
|
1. **クローン**。そこからプロジェクトをローカルマシンにクローンします。
|
|
|
1. **ブランチを作成する**。コントリビューターに作業用のブランチを作成するように求めます。
|
|
|
1. **変更を1つの領域に集中させる**。コントリビューターに貢献を1つのことに集中させるように求めます。そうすることで、彼らの作業をマージする可能性が高くなります。例えば、バグ修正、新機能の追加、いくつかのテストの更新を行った場合、3つのうち2つまたは1つだけを実装したい、またはできる場合はどうしますか?
|
|
|
|
|
|
✅ ブランチが特に重要になる状況を想像してみてください。どのようなユースケースが思い浮かびますか?
|
|
|
|
|
|
> 注: 自分が望む変化を世界に示し、自分の作業にもブランチを作成してください。行ったコミットは現在「チェックアウト」しているブランチに行われます。`git status`を使用してそのブランチがどれかを確認してください。
|
|
|
|
|
|
コントリビューターワークフローを見てみましょう。コントリビューターがすでにリポジトリをフォークし、クローンしていると仮定します。つまり、ローカルマシンで作業可能なGitリポジトリを持っている状態です:
|
|
|
|
|
|
1. **ブランチを作成する**。`git branch`コマンドを使用して、貢献する変更を含むブランチを作成します:
|
|
|
|
|
|
```bash
|
|
|
git branch [branch-name]
|
|
|
```
|
|
|
|
|
|
> 💡 **モダンなアプローチ**: 1つのコマンドで新しいブランチを作成して切り替えることもできます:
|
|
|
```bash
|
|
|
git switch -c [branch-name]
|
|
|
```
|
|
|
|
|
|
1. **作業ブランチに切り替える**。指定したブランチに切り替え、`git switch`で作業ディレクトリを更新します:
|
|
|
|
|
|
```bash
|
|
|
git switch [branch-name]
|
|
|
```
|
|
|
|
|
|
> 💡 **モダンな注意**: `git switch`はブランチを変更する際の`git checkout`のモダンな代替手段です。初心者にとってより明確で安全です。
|
|
|
|
|
|
1. **作業を行う**。この時点で変更を加えます。以下のコマンドでGitに知らせるのを忘れないでください:
|
|
|
|
|
|
```bash
|
|
|
git add .
|
|
|
git commit -m "my changes"
|
|
|
```
|
|
|
|
|
|
> ⚠️ **コミットメッセージの品質**: コミットに良い名前を付けることを忘れないでください。自分自身とリポジトリのメンテナーのために具体的に何を変更したかを明確にしてください!
|
|
|
|
|
|
1. **作業を`main`ブランチと統合する**。作業が完了したら、`main`ブランチの作業と統合したいと思うでしょう。その間に`main`ブランチが変更されている可能性があるので、以下のコマンドで最新の状態に更新してください:
|
|
|
|
|
|
```bash
|
|
|
git switch main
|
|
|
git pull
|
|
|
```
|
|
|
|
|
|
この時点で、Gitが変更を簡単に統合できない場合、つまり競合が発生する場合は、作業ブランチで解決する必要があります。そのため、以下のコマンドを実行してください:
|
|
|
|
|
|
```bash
|
|
|
git switch [branch_name]
|
|
|
git merge main
|
|
|
```
|
|
|
|
|
|
`git merge main`コマンドは`main`からのすべての変更をブランチに取り込みます。うまくいけばそのまま続けられるでしょう。そうでない場合は、VS CodeがGitが混乱している場所を教えてくれるので、影響を受けたファイルを変更して最も正確な内容を記述します。
|
|
|
|
|
|
💡 **モダンな代替案**: よりクリーンな履歴のために`git rebase`を使用することを検討してください:
|
|
|
```bash
|
|
|
git rebase main
|
|
|
```
|
|
|
|
|
|
これにより、最新の`main`ブランチの上にコミットを再生し、線形の履歴を作成します。
|
|
|
|
|
|
1. **作業をGitHubに送る**。作業をGitHubに送るということは、ブランチをリポジトリにプッシュし、その後PR(プルリクエスト)を開くことを意味します。
|
|
|
|
|
|
```bash
|
|
|
git push --set-upstream origin [branch-name]
|
|
|
```
|
|
|
|
|
|
上記のコマンドはフォークしたリポジトリにブランチを作成します。
|
|
|
|
|
|
1. **PRを開く**。次に、PRを開きます。フォークしたリポジトリのGitHubページに移動します。GitHubで新しいPRを作成するかどうかを尋ねる表示があり、それをクリックすると、コミットメッセージのタイトルを変更したり、より適切な説明を追加したりするインターフェースに移動します。これでフォークしたリポジトリのメンテナーがこのPRを確認し、_うまくいけば_感謝してPRをマージしてくれるでしょう。これであなたはコントリビューターです、やったね :)
|
|
|
|
|
|
💡 **モダンなヒント**: GitHub CLIを使用してPRを作成することもできます:
|
|
|
```bash
|
|
|
gh pr create --title "Your PR title" --body "Description of changes"
|
|
|
```
|
|
|
|
|
|
🔧 **PRのベストプラクティス**:
|
|
|
- "Fixes #123"のようなキーワードを使用して関連する問題にリンクする
|
|
|
- UI変更の場合はスクリーンショットを追加する
|
|
|
- 特定のレビュアーをリクエストする
|
|
|
- 作業中のPRにはドラフトPRを使用する
|
|
|
- レビューをリクエストする前にすべてのCIチェックが通過していることを確認する
|
|
|
|
|
|
1. **クリーンアップ**。PRが成功裏にマージされた後、クリーンアップすることが良いプラクティスとされています。ローカルブランチとGitHubにプッシュしたブランチの両方をクリーンアップしたいです。まず、以下のコマンドでローカルブランチを削除します:
|
|
|
|
|
|
```bash
|
|
|
git branch -d [branch-name]
|
|
|
```
|
|
|
|
|
|
次に、フォークしたリポジトリのGitHubページに移動し、リモートブランチを削除します。
|
|
|
|
|
|
`プルリクエスト`という用語は少し奇妙に思えるかもしれません。実際にはプロジェクトに変更をプッシュしたいのですが、メンテナー(プロジェクトオーナー)やコアチームがその変更をプロジェクトの「main
|
|
|
🤞すべてのチェックが通り、プロジェクトオーナーがあなたの変更をプロジェクトにマージしてくれることを祈っています🤞
|
|
|
|
|
|
GitHubの対応するリモートブランチから新しいコミットをすべて取得して、現在のローカル作業ブランチを更新しましょう:
|
|
|
|
|
|
`git pull`
|
|
|
|
|
|
## オープンソースへの貢献(あなたが影響を与えるチャンス!)
|
|
|
|
|
|
何か驚くべきことをする準備はできていますか?🤯 オープンソースプロジェクトへの貢献について話しましょう。これを共有することを考えるだけで鳥肌が立ちます!
|
|
|
|
|
|
これは本当に特別なものの一部になるチャンスです。毎日何百万もの開発者が使うツールを改善したり、友達が愛用しているアプリのバグを修正したりすることを想像してください。それは夢ではありません。それがオープンソースへの貢献の本質です!
|
|
|
|
|
|
これを考えるたびにゾクゾクする理由は、あなたが学んでいるすべてのツール、コードエディタ、これから探求するフレームワーク、さらにはこれを読んでいるブラウザも、誰かが最初の貢献をしたことから始まったということです。あなたのお気に入りのVS Code拡張機能を作ったあの素晴らしい開発者も、かつては震える手で「プルリクエストを作成」をクリックしていた初心者でした。まさに今、あなたがしようとしていることです。
|
|
|
|
|
|
そして最も素晴らしい部分は、オープンソースコミュニティがインターネット最大のグループハグのようなものだということです。ほとんどのプロジェクトは新しい参加者を積極的に探しており、「good first issue」というタグが付いた課題を用意して、あなたのような人を歓迎しています!メンテナーは新しい貢献者を見ると本当に興奮します。なぜなら、彼ら自身の最初の一歩を覚えているからです。
|
|
|
|
|
|
ここで学んでいるのは単なるコーディングではありません。デジタル世界を少しでも良くする方法を毎日考えるグローバルな家族の一員になる準備をしているのです。クラブへようこそ!🌟
|
|
|
|
|
|
まず、GitHubで興味のあるリポジトリ(**repo**)を見つけて、変更を加えたいと思うものを選びましょう。その内容をあなたのマシンにコピーする必要があります。
|
|
|
|
|
|
✅ '初心者向け'リポジトリを見つける良い方法は、[タグ 'good-first-issue' で検索すること](https://github.blog/2020-01-22-browse-good-first-issues-to-start-contributing-to-open-source/)です。
|
|
|
|
|
|

|
|
|
|
|
|
コードをコピーする方法はいくつかあります。一つの方法は、HTTPS、SSH、またはGitHub CLI(コマンドラインインターフェース)を使用してリポジトリの内容を「クローン」することです。
|
|
|
|
|
|
ターミナルを開いて、以下のようにリポジトリをクローンします:
|
|
|
```bash
|
|
|
# Using HTTPS
|
|
|
git clone https://github.com/ProjectURL
|
|
|
|
|
|
# Using SSH (requires SSH key setup)
|
|
|
git clone git@github.com:username/repository.git
|
|
|
|
|
|
# Using GitHub CLI
|
|
|
gh repo clone username/repository
|
|
|
```
|
|
|
|
|
|
プロジェクトに取り組むには、正しいフォルダに移動します:
|
|
|
`cd ProjectURL`
|
|
|
|
|
|
また、以下を使用してプロジェクト全体を開くこともできます:
|
|
|
- **[GitHub Codespaces](https://github.com/features/codespaces)** - ブラウザ内でVS Codeを使用できるGitHubのクラウド開発環境
|
|
|
- **[GitHub Desktop](https://desktop.github.com/)** - Git操作用のGUIアプリケーション
|
|
|
- **[GitHub.dev](https://github.dev)** - 任意のGitHubリポジトリで`.`キーを押すとブラウザ内でVS Codeが開きます
|
|
|
- **VS Code**(GitHub Pull Requests拡張機能付き)
|
|
|
|
|
|
最後に、コードを圧縮フォルダとしてダウンロードすることもできます。
|
|
|
|
|
|
### GitHubについてのいくつかの興味深いこと
|
|
|
|
|
|
GitHub上の任意の公開リポジトリをスター、ウォッチ、または「フォーク」することができます。スターを付けたリポジトリは右上のドロップダウンメニューで見つけることができます。これはコードのブックマークのようなものです。
|
|
|
|
|
|
プロジェクトには問題トラッカーがあり、ほとんどの場合GitHubの「Issues」タブにあります(特に別途指定がない限り)。ここでプロジェクトに関連する問題について議論します。また、「Pull Requests」タブでは進行中の変更について議論し、レビューします。
|
|
|
|
|
|
プロジェクトにはフォーラム、メーリングリスト、Slack、Discord、IRCなどのチャットチャンネルで議論が行われることもあります。
|
|
|
|
|
|
🔧 **最新のGitHub機能**:
|
|
|
- **GitHub Discussions** - コミュニティ会話のための組み込みフォーラム
|
|
|
- **GitHub Sponsors** - メンテナーを金銭的に支援する
|
|
|
- **Securityタブ** - 脆弱性レポートとセキュリティ勧告
|
|
|
- **Actionsタブ** - 自動化ワークフローとCI/CDパイプラインを確認
|
|
|
- **Insightsタブ** - コントリビューター、コミット、プロジェクトの健全性に関する分析
|
|
|
- **Projectsタブ** - GitHubの組み込みプロジェクト管理ツール
|
|
|
|
|
|
✅ 新しいGitHubリポジトリを見て、設定を編集したり、情報を追加したり、プロジェクト(例えばカンバンボード)を作成したり、GitHub Actionsを設定して自動化を試したりしてみてください。できることはたくさんあります!
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🚀 チャレンジ
|
|
|
|
|
|
さて、あなたの新しいGitHubスキルを試す時が来ました!🚀 これを実行すると、すべてが最も満足のいく形で理解できるようになります:
|
|
|
|
|
|
友達(またはいつも「そのコンピュータのことは何をしているの?」と聞いてくる家族)を誘って、一緒にコーディングの冒険に出かけましょう!ここが本当の魔法が起こる場所です。プロジェクトを作成し、彼らにフォークさせ、ブランチを作成し、プロのように変更をマージしてみましょう。
|
|
|
|
|
|
正直に言うと、途中で笑ったり(特に同じ行を変更しようとしたとき)、混乱して頭をかきむしったりするかもしれません。でも、学びがすべて価値あるものになる素晴らしい「なるほど!」の瞬間を経験することは間違いありません。そして、誰かと最初の成功したマージを共有することには特別な何かがあります。それは、どれだけ進歩したかを祝う小さな瞬間のようなものです!
|
|
|
|
|
|
まだコーディング仲間がいない?心配しないでください!GitHubコミュニティには、初心者だった頃を覚えている非常に歓迎的な人々がたくさんいます。「good first issue」ラベルが付いたリポジトリを探してみてください。それは基本的に「初心者の皆さん、一緒に学びましょう!」と言っているようなものです。素晴らしいですよね?
|
|
|
|
|
|
## 講義後のクイズ
|
|
|
[講義後のクイズ](https://ff-quizzes.netlify.app/web/en/)
|
|
|
|
|
|
## 復習と学び続ける
|
|
|
|
|
|
やったね!🎉 あなたはGitHubの基本を完全にマスターしました!もし今、頭が少しいっぱいになっていると感じたら、それは完全に正常で、実際には良い兆候です。あなたは、私が始めた頃に数週間かかったツールを学びました。
|
|
|
|
|
|
GitとGitHubは非常に強力です(本当に強力です)。私が知っているすべての開発者、今では魔法使いのように見える人たちも、すべてが理解できるようになるまで練習し、試行錯誤しました。このレッスンを終えたという事実は、あなたがすでに開発者のツールキットの中で最も重要なツールをマスターする道を歩んでいることを意味します。
|
|
|
|
|
|
以下は、練習してさらに素晴らしくなるための絶対に素晴らしいリソースです:
|
|
|
|
|
|
- [オープンソースソフトウェアへの貢献ガイド](https://opensource.guide/how-to-contribute/#how-to-submit-a-contribution) – 影響を与えるためのロードマップ
|
|
|
- [Gitチートシート](https://training.github.com/downloads/github-git-cheat-sheet/) – クイックリファレンス用に手元に置いておきましょう!
|
|
|
|
|
|
そして覚えておいてください:練習は進歩を生みます、完璧ではありません!GitとGitHubを使えば使うほど、自然に使いこなせるようになります。GitHubは安全な環境で練習できる素晴らしいインタラクティブコースを作成しています:
|
|
|
|
|
|
- [GitHubの紹介](https://github.com/skills/introduction-to-github)
|
|
|
- [Markdownを使ったコミュニケーション](https://github.com/skills/communicate-using-markdown)
|
|
|
- [GitHub Pages](https://github.com/skills/github-pages)
|
|
|
- [マージコンフリクトの管理](https://github.com/skills/resolve-merge-conflicts)
|
|
|
|
|
|
**冒険心があるなら、これらの最新ツールをチェックしてみてください:**
|
|
|
- [GitHub CLIドキュメント](https://cli.github.com/manual/) – コマンドラインの魔法使いのように感じたいときに
|
|
|
- [GitHub Codespacesドキュメント](https://docs.github.com/en/codespaces) – クラウドでコードを書く!
|
|
|
- [GitHub Actionsドキュメント](https://docs.github.com/en/actions) – すべてを自動化
|
|
|
- [Gitのベストプラクティス](https://www.atlassian.com/git/tutorials/comparing-workflows) – ワークフローをレベルアップ
|
|
|
|
|
|
## GitHub Copilotエージェントチャレンジ 🚀
|
|
|
|
|
|
エージェントモードを使用して以下のチャレンジを完了してください:
|
|
|
|
|
|
**説明:** このレッスンで学んだGitHubワークフローを完全に実演する共同ウェブ開発プロジェクトを作成してください。このチャレンジは、リポジトリの作成、コラボレーション機能、最新のGitワークフローを実際のシナリオで練習するのに役立ちます。
|
|
|
|
|
|
**プロンプト:** シンプルな「Web開発リソース」プロジェクトのための新しい公開GitHubリポジトリを作成してください。リポジトリには、カテゴリ(HTML、CSS、JavaScriptなど)ごとに整理された便利なウェブ開発ツールとリソースをリストした構造化されたREADME.mdファイルを含めてください。ライセンス、貢献ガイドライン、行動規範を含む適切なコミュニティ標準でリポジトリを設定してください。CSSリソースを追加するためのブランチとJavaScriptリソースを追加するためのブランチを少なくとも2つ作成してください。それぞれのブランチに説明的なコミットメッセージを付けてコミットを行い、変更をメインにマージするためのプルリクエストを作成してください。Issues、DiscussionsなどのGitHub機能を有効にし、基本的なGitHub Actionsワークフローを設定して自動チェックを行ってください。
|
|
|
|
|
|
## 課題
|
|
|
|
|
|
あなたのミッション、もし受け入れるならば:[GitHubの紹介](https://github.com/skills/introduction-to-github)コースをGitHub Skillsで完了してください。このインタラクティブなコースでは、学んだことを安全でガイド付きの環境で練習することができます。さらに、完了するとクールなバッジがもらえます!🏅
|
|
|
|
|
|
**さらに挑戦する準備ができていますか?**
|
|
|
- GitHubアカウントのSSH認証を設定する(もうパスワードは不要!)
|
|
|
- 日常のGit操作にGitHub CLIを使用してみる
|
|
|
- GitHub Actionsワークフローを使用してリポジトリを作成する
|
|
|
- このリポジトリをクラウドベースのエディタで開いてGitHub Codespacesを探索する
|
|
|
|
|
|
覚えておいてください:すべての専門家はかつて初心者でした。あなたならできます!💪
|
|
|
|
|
|
---
|
|
|
|
|
|
**免責事項**:
|
|
|
この文書はAI翻訳サービス[Co-op Translator](https://github.com/Azure/co-op-translator)を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。元の言語で記載された文書を正式な情報源としてご参照ください。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤解釈について、当社は責任を負いません。 |