はじめに
こんにちは、OhaGiです。
サポーターズ主催のこちらの勉強会に参加しました。
Git、GitHubは以前から使用していましたが今回改めて体系的に学べたのでその内容をまとめてみます。
Gitとは
オープンソースの 分散型バージョン管理システム の一種。
バージョン管理 とは
ファイルを誰が・いつ・どんな変更をしたか、変更履歴を記録すること。
変更差分の確認やファイルの復元等が行える。
GitHubとは
GitをWebサービスとして提供している ソフトウェア開発のプラットフォーム 。
前述のバージョン管理機能や、コードレビュー機能、issuesを使ったタスク管理機能など、多くの機能を持つ。
ユーザー数1億人越えの超人気サイトであり、学生のチーム開発から大手企業まで幅広いシーンで使用されている。
GitHubを用いた開発の流れ
1.リモートリポジトリを作る
GitHubから New
→ リポジトリ名の入力と公開設定、Readmeファイルを追加するかを選択→ Create repository
2.ローカルリポジトリを作る(clone)
clone | 作成したリモートリポジトリをローカルにコピーすること。
エクスプローラー等で作業ファイルを作成 → ターミナル上で
cd cloneしたいファイルへのパス
を入力。
GitHubで作成したリポジトリのページから <>code
タブ →緑色の <>code
ボタンからキーをコピー
ターミナル上で
git clone コピーしたキー
を入力。
cloneしたローカルリポジトリに移動しておく。
cd ディレクトリのパス
3.issue作成
issue | メンバー間での確認事項などスレッド形式で共有出来る機能。進捗状況の管理などが可能。
GitHubのページから Issues
タブ →緑色の New issue
ボタン → タイトルを入力してSubmit new issue
でissueを作成
4.branch作成
branch | 履歴を枝分かれさせたもの。
branchの元のコピーをそのまま取ってそこで作業が出来る。
issueを立てたときに作ることが多い。
GitHub上のIssues
タブからCreate branch
ボタンを押してブランチ名を入力して作成。
5.fetch
fetch | リモートリポジトリから最新の状態を取得する操作。ただし、まだローカルのブランチには反映されていない。
ターミナル上で
git fetch origin
を実行。
6.branchを移動
ローカルではまだ作成したbranchに移動できていないため チェックアウト (移動)する必要がある。
git branch -r
:リモートリポジトリのブランチを一覧表示する。
git branch
:ローカルリポジトリのブランチを一覧表示する。
git checkout ブランチ名
でブランチを移動。
7.コードを記述
コードをひたすら書く
8.ステージング
ステージング | commitするファイルを選択すること。
ターミナル上で
git add ステージングするファイル名
を実行。
9.commit
commit | 変更内容をローカルリポジトリに記録すること。
GitHubでは、コミットしたタイミングに変更を戻すことが出来る。ゲームのセーブ機能をイメージすると分かりやすいかも。
ターミナル上で
git commit -m コミットのメッセージ
を実行。
-m
はコミットのメッセージを追加するオプション。
10.push
push | fetchに加えて、リモートからの変更をローカルに反映する操作のこと。
ターミナル上で
git push
を実行。
11.pullrequest
pullrequest | レビューやmergeを行うためのリクエストを送る機能。
GitHub上でNew pull request
ボタン
プルリクエストのタイトル、レビュワー等を入力して作成。
12.レビュー
チーム開発などの場合、GitHubのコード比較機能を使用してレビューを行う。
13.merge
merge | 変更内容を統合すること。リモートリポジトリ上のブランチからメインのブランチに反映させることが多い。
GitHub上でMerge pull request
ボタン → Confirm merge
ボタンをクリック。
14.pull
pull | リモートリポジトリの変更内容をローカルリポジトリに反映させること。
fetchとmergeをするイメージ。
git checkout ブランチ名
でpullするブランチにチェックアウトしてから
git pull
を実行。
これで、ローカルリポジトリが最新状態に更新される。
最後に
以上が今回の勉強会のまとめです。前回のチーム開発ではIssueを活用しなかったため、今回それについて学べたことが特に大きな収穫でした。