GitHubは、ソフトウェア開発におけるリポジトリ管理やチーム開発を行う際の強力なツールです。
GitHubを使うことで、コードのバージョン管理、チームメンバーとの共同作業、さらにはプロジェクトの公開が容易に行えます。
本記事では、GitHubの基本的な操作からリモートリポジトリを利用したマージやプルについて、実際の手順を交えながら解説していきます。
キーワード:Git, GitHub, リポジトリ
GitとGitHubの違い
まず、GitとGitHubの違いについて説明します。名前は似ていますが同じ意味ではありません。
Git
ローカルの環境でファイルのバージョン管理を行うシステムです。
各ファイルの変更履歴を記録し、必要に応じて過去のバージョンに戻したり、ブランチを作って異なる作業内容を分けることができます。
GitHub
Gitリポジトリをクラウド上で管理し、他の開発者と共有やコラボレーションができるプラットフォームです。
リモートリポジトリを利用することでプロジェクト全体を一元的にオンライン管理することが可能です。
次に、GitHubを活用してローカルリポジトリとリモートリポジトリを操作する具体的な方法を見ていきます。
ローカルリポジトリとリモートリポジトリについて
GitHubを使うにあったて、ローカルリポジトリとリモートリポジトリを理解する必要があります。
ローカルリポジトリ
自身のPC上で管理され、ここでコードを実際に編集します。
ローカルな環境であるため、他の開発者にアクセスされることはありません。
リモートリポジトリ
GitHub上で作成されるリポジトリで、オンラインに保存されるため、他の開発者と共有し、共同で開発を進められます。
ローカルリポジトリをリモートリポジトリに反映させよう
まず、ローカル環境に作業するディレクトリを作成し、git init
でGitを初期化してローカルリポジトリを作ります。これはローカルリポジトリです。
ローカルで作業したものをリモートリポジトリに反映させることで、他の人にもその変更を共有することができます。(Pull)
ローカルリポジトリで作業を行った後、変更内容をリモートリポジトリに反映するには、commit
とpush
を使います。
- ステージング
まず変更したファイルをGitに登録します。git add .
- コミット
変更内容をコミットし、履歴に残します。git commit -m "Initial commit"
- プッシュ
リモートリポジトリに反映します。git push origin main
main
はデフォルトのブランチ名です。これにより、GitHubのリポジトリページでコードを確認できるようになります。
プルとマージ
チーム開発では、複数の開発者が同じリモートリポジトリにプッシュするため、プルやマージの操作が必要です。
プル(Pull)
git pull
コマンドでリモートリポジトリ上の最新の変更をローカルリポジトリに取り込みます。他のメンバーが加えた変更を取り込むために行う操作です。
git pull origin main
厳密にはgit pull
は、git fetch
の後にgit merge
をしていることと同じです。git merge
については次の章を見てください。
マージ(Merge)
プルを行った際にローカルの変更とリモートの変更が異なる場合、git merge
を使用して2つの変更を統合します。枝分かれしたものを再び結びつけるイメージです。
たとえば、新しい機能を追加するためにブランチを作成し、作業内容をメインブランチにマージする場合は以下の手順になります。
1. 新しいブランチを作成
git checkout -b feature-branch
今回は作業ブランチをfeature-branch
にしています。
2. 変更をコミット
git add .
git commit -m "Added a new feature"
commitメッセージは何の作業をしたのか分かりやすいようにしておきましょう。
3. メインブランチに戻り、マージ
git checkout main
git merge feature-branch
これで、mainブランチにfeature-branchブランチで行った変更内容が反映されます。
4. リモートリポジトリにプッシュ
git push origin main
マージの衝突と解決方法
同じファイルを異なる内容で編集しているとコンフリクト(衝突)が発生することがあります。
コンフリクトが起きた場合は、以下の手順で解決します。(私の備忘録)
まず、衝突箇所を確認しましょう。Gitは、コンフリクトが発生した箇所に<<<<<<< HEAD
などの印をつけます。そのため、見たら衝突した箇所がわかるようになっています。
エディタを使って、どの変更を残すか手動で編集します。頑張ってください。
その後、再コミットとプッシュをしましょう。
git add .
git commit -m "Resolved merge conflict"
git push origin main
GitHubフローでの開発
GitHubを使った開発では、多くの開発者が採用する「GitHubフロー」を使うと効率的です。基本の流れは以下のとおりです。
- ブランチを作成:新しい作業ごとにブランチを作成。
- コミットとプッシュ:作業が完了したらコミットし、リモートにプッシュ。
- プルリクエストを作成:GitHub上でプルリクエストを作成し、レビューを依頼。
- マージ:チームメンバーと確認後、メインブランチにマージ。
まとめ
GitHubの基本操作、マージやプルといったリモートリポジトリの操作を覚えると、よりスムーズに共同開発ができるようになります。
これらの技術を身につけ、GitHubを活用しながら開発スキルを磨いていきましょう。
最後までご覧いただきありがとうございます。お疲れ様でした。
コメント