チーム開発でGitHub利用するにあたり今回自分が躓いた点を説明していきます。
そもそもGitとは
変更履歴を記録・追跡するための分散型バージョン管理システム
過去のある状態に戻したりもできる
ここではローカルとリモートの関係を元にコマンドの内容を見ていきます
git clone
リポジトリの複製
リモートからローカルへcloneする場合は
GitHub上のcloneしたいページからssh URLをコピーしてターミナル上で実行する
git clone <<URL>>
git push
ローカルからリモートへpushする場合
git push orign <branch名>
この時pushしたいbranchにいるかは
git branch -a
で確認すると良い
git pull
git pull remote名 branch名
リモートリポジトリの履歴を取得することができる
git merge
branchAからbranchBに更新内容を取り込むこと。
git branch -a
でbranchBにいることを確認
git merge branchA
branch
開発場所の複製、branchを作成する(切る)ことにより複数に作業が並行して行うことができる。
Pull request
branchを作成し変更点を実装したあと編集リクエスト(他人に確認してもらう)をお願いすること。
また確認をお願いされた者が変更点が問題ないことを確認し元のブランチに戻す(反映)ことをmerge(マージ)という。
自分が躓いた点
内容:
masterから develop branchを作成し
developからクラスごとに新たに3つのbranchを作成
feature/classA
feature/classB
feature/classC
feature/classAで実装を終えremote上でgit developへpushしpullrequestしmergeしたのち
feature/classBへbranchを変更し実装をしたがfeature/classB、feature/classAで実装した内容が消えていた。
理由:
ローカルのdevelop branchにリモートの最新版のdevelopを取得していなかった。
解決方法:
develop branchの状態で
git pull origin developとリモートの最新版を取得する。
そののちfeature/classBの状態で
git merge developとする
feature/classBも更新することで機能の作業が終わったら作業内容の差分がdevelop branchへ取り込まれるため。
また最新のdevelop branchを追随しておくことで他のfeature branchで実装したファイルも確認できる。
自分が今どこの状態までコミット、マージしたのかわからなくなった場合
git log
で直近のコミットやマージ内容も確認できる。
参考にした記事
https://backlog.com/ja/git-tutorial/intro/intro1_1.html
https://qiita.com/KosukeSone/items/514dd24828b485c69a05 (編集済み)