Grow up

生活とプログラミング

GitHub の利用

f:id:knkomko:20200921202135p:plain

はじめに

UdemyのGit講座で覚えきれなかった内容を復習します。
knkomko.hatenablog.com

1.リモートリポジトリを追加
git remote add [リモート名]

GitHub上で新規作成したリモートリポジトリをbakの名称で登録する
f:id:knkomko:20200921202957p:plain

リモートの情報を確認するとbakの名称でリポジトリの登録が確認できる
f:id:knkomko:20200921203111p:plain

2. リモートリポジトリの情報を取得
git fetch [リモート名]

リモートリポジトリの更新された内容を取得する
f:id:knkomko:20200921203719p:plain

リモートリポジトリから取得した情報がローカルリポジトリに保存される
remotes/ : リモートリポジトリから取得した情報が保存される場所
f:id:knkomko:20200921203805p:plain

ワークツリーにローカルリポジトリの内容を反映する
f:id:knkomko:20200921204238p:plain

3. リモートリポジトリの削除
git remote rm [リモート名]

現在のリモートリポジトリを確認する
f:id:knkomko:20200921205118p:plain

リモートリポジトリを削除する
f:id:knkomko:20200921205254p:plain

リモートリポジトリが削除されていることを確認する
f:id:knkomko:20200921205331p:plain

4. リモートリポジトリに更新内容を保存する
git push [リモート名] [ブランチ名]

ローカルリポジトリの更新内容をリモートリポジトリに保存する
f:id:knkomko:20200921210729p:plain

5. ブランチの新規作成
git branch [ブランチ名]

既存のブランチを確認する
f:id:knkomko:20200921205649p:plain

ブランチを新規作成する
f:id:knkomko:20200921205739p:plain

作成したブランチを確認する
f:id:knkomko:20200921205818p:plain

6. ブランチを切り替える
git checkout [既存ブランチ名]

masterからfutureブランチに切り替える
f:id:knkomko:20200921210046p:plain

現在HEADが指し示すブランチを確認する
f:id:knkomko:20200921210156p:plain

7. 変更履歴をマージする
git merge [ブランチ名]

①Fast Foward
現在のブランチより新しいブランチを参照する (親ブランチは1つ)

リモートリポジトリにてindex.htmlを変更した内容をワークツリーに取り込む
pull : fetch と merge を順番に実行する
f:id:knkomko:20200921211826p:plain

リモートリポジトリにて変更した最新のブランチが参照されている
f:id:knkomko:20200921212214p:plain

②Auto Merge
複数のブランチから新しいブランチを作成して参照する (親ブランチは2つ)

fuatureブランチにてindex.htmlを変更した内容をmasterに取り込む
f:id:knkomko:20200921212718p:plain

fuatureブランチの変更がmasterブランチに取り込まれている
f:id:knkomko:20200921212816p:plain

8. コンフリクトを解決する

複数のブランチが同じファイルの同じ行に変更を行うとコンフリクトが発生する
f:id:knkomko:20200921214313p:plain

コンフリクトが発生したファイルを確認する
f:id:knkomko:20200921214355p:plain

コンフリクトが発生している行を確認する
f:id:knkomko:20200921214617p:plain
f:id:knkomko:20200921214527p:plain

コンフリクトが発生した行を編集してファイルを保存する
f:id:knkomko:20200921214900p:plain

コンフリクトを解消したファイルをコミットする
f:id:knkomko:20200921215825p:plain

コンフリクトを解消したことをメッセージに記載する
f:id:knkomko:20200921215601p:plain

コミットが成功していることを確認する
f:id:knkomko:20200921215955p:plain

9. コンフリクトを防ぐ

・複数人で同じファイルを変更しない
・pullやmergeする前にcommitしておく
・pullするブランチに移動してからpullする

10. GitHub Flow を使用した開発手順

必ずプルリクエストによるレビューを行ってコードの品質を担保する
開発フローをシンプルにすることで開発に参加しやすくなる
masterがリリースしているコードとなる事で機能単位の切り戻しがしやすくなる
f:id:knkomko:20200921220741p:plain
【図解】git-flow、GitHub Flowを開発現場で使い始めるためにこれだけは覚えておこう:こっそり始めるGit/GitHub超入門(終) - @IT

講座の感想

まずはGitHub Flowを小規模な開発で導入したいと思いました。
コンフリクトの解消方法やコンフリクトを防ぐ運用ルールをチームで共有する為に今回の講座にあるGitの仕組みを理解して説明できる必要があるので、まずは個人で利用して、理解を深めていきたいと思います。