Git ワークフロー
この章では、Git のワークフローについて説明します。
次の図は Git のワークフローを示しています:
Git のワークフローは、次のようなものとしてイメージできます。宿題を書いて先生に提出するプロセスです。上の図と合わせて、このフローは次の4つの主要な部分に分けられます:
1. ワークスペース (Working Directory) —— あなたの机
ここは、あなたが実際にファイルを変更する場所です。ここでコードを書いたり、削除したり修正したりします。
- 操作:ここで新機能を作成したり、バグを修正したりします。
2. ステージングエリア (Staging Area) —— 郵送待ちのカゴ
宿題がだいたい書き終わったと思ったら、それをカゴに入れて梱包の準備をします。
- 重要なコマンド:
git add - 意味:Git に「これらの変更をコミットすることを確認したので、先に覚えておいて」と伝えます。
3. ローカルリポジトリ (Local Repository) —— あなたの個人用金庫
カゴの中身を梱包し、ラベル(コミットメッセージ)を貼って、自分の金庫にしまいます。
- 重要なコマンド:
git commit - 意味:変更が正式にプロジェクト履歴の一部になります。後で変更を台無しにしても、いつでもここから復元できます。
4. リモートリポジトリ (Remote) —— 先生の受信箱(例:GitHub/GitLab)
最後に、金庫の中のコードをネットワーク経由でリモートサーバーに送信し、他の人が閲覧したり協力したりできるようにします。
- 重要なコマンド:
git push - 意味:コードをバックアップし、チームと進捗を共有します。
知識ポイントの説明
- git stash(退避領域):宿題を半分まで書いたところで、急ぎの別の作業をしなければならなくなったが、未完成の宿題はコミットしたくない場合。このようなときは、まず
stashコードを引き出しにしまい、忙しい作業が終わったら取り出して書き続けることができます(pop)。 - git pull(プル):先生(リモートリポジトリ)のところに他の人が提出した新しい宿題がないか確認し、そのままあなたの机に同期します。
- git fetch & merge:まずリモートにどのような更新があるか確認し(
fetch)、問題がないことを確認してからマージ(merge)して自分のコードに取り込みます。
簡単にまとめると:
コードを変更する →add(カゴに入れる) →commit(箱にしまう) →push(遠くへ送る)。
コマンドの説明
1. リポジトリをクローンする
既存のプロジェクトに参加する場合、まずリモートリポジトリをローカルにクローンする必要があります:
git clone https://github.com/username/repo.git cd repo
2. 新しいブランチを作成する
main や master ブランチで直接開発することを避けるため、通常は新しいブランチを作成します:
git checkout -b new-feature
3. ワークディレクトリ
ワークディレクトリでコードの編集、新しいファイルの追加、不要なファイルの削除を行います。
4. ファイルをステージングする
変更したファイルをステージングエリアに追加して、次のコミット操作を行えるようにします:
git add filename # 或者添加所有修改的文件 git add .
5. 変更をコミットする
ステージングエリアの変更をローカルリポジトリにコミットし、コミットメッセージを追加します:
git commit -m "Add new feature"
6. 最新の変更をプルする
ローカルの変更をプッシュする前に、競合を避けるため、リモートリポジトリから最新の変更をプルすることをお勧めします:
git pull origin main # 或者如果在新的分支上工作 git pull origin new-feature
7. 変更をプッシュする
ローカルのコミットをリモートリポジトリにプッシュします:
git push origin new-feature
8. Pull Request(PR)を作成する
GitHub や他のホスティングプラットフォームで Pull Request を作成し、チームメンバーにコードレビューを依頼します。PR がマージされると、あなたの変更がメインブランチにマージされます。
9. 変更をマージする
PR のレビューが承認されてマージされた後、リモートリポジトリのメインブランチをローカルブランチにマージできます:
git checkout main git pull origin main git merge new-feature
10. ブランチを削除する
新機能ブランチが不要になった場合は、それを削除できます:
git branch -d new-feature
または、リモートリポジトリからブランチを削除します:
git push origin --delete new-featureその他の拡張