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
その他の拡張