このレッスンで学ぶこと
- GitHub と手元のリポジトリの関係
- push と pull
- branch で本流を壊さずに作業する方法
手元と GitHub
前のレッスンの commit は、あなたのパソコンの中だけの記録です。みんなで同じサイトを作るには、記録を共有する場所が必要です。それが GitHub です。
- push: 手元の commit を GitHub に送る
- pull: GitHub にある新しい commit を手元に取り込む
- clone: GitHub のリポジトリを、まるごと手元にコピーする(0 章で使ったもの)
GitHub 上のリポジトリを「リモート」と呼びます。手元とリモートは、push と pull をしたときだけ同期します。自動ではありません。
作業を始める前に git pull をする習慣をつけてください。他の人の変更を取り込んでから始めると、食い違いが起きにくくなります。
branch: 本流を壊さずに試す
みんなが同じファイルを同時に直すと、作業がぶつかります。そこで、作業ごとに枝分かれした場所を作ります。これが branch(ブランチ)です。
mainは本流です。公開されるサイトは main の内容です- 自分の branch で何をしても、main には影響しません
- 完成したら main に取り込みます(merge)
研究室サイトでは、main に直接 commit せず、必ず自分の branch で作業します。
やってみよう: 自分の branch を push する
研究室サイトのフォルダに戻って作業します。GitHub の sfc-icar に push するには、org のメンバーである必要があります。招待がまだなら、先輩に頼んでください。
-
最新の状態にします。
cd ~/Documents/sfc-icar.github.io git pull -
自分の branch を作って、そこに移ります。名前の部分は自分の名前にしてください(例:
practice-kamei)。git switch -c practice-あなたの名前switchは branch を切り替えるコマンドで、-cは「新しく作って切り替える」という意味です。 -
今どの branch にいるか確認します。
*が付いているのが今の branch です。git branchmain * practice-kamei -
README.mdの最後に、自分の名前を 1 行書き足して commit します。git add README.md git commit -m "README に自分の名前を追加" -
GitHub に push します。はじめて push する branch は、送り先を
-u origin branch名で指定します。originは「clone してきた元のリモート」につけられた名前です。git push -u origin practice-あなたの名前 -
GitHub で sfc-icar/sfc-icar.github.io を開き、branch の一覧に自分の branch があることを確かめます。
この branch は練習用なので、main には取り込みません。main への取り込みは 4 章で行います。
コマンドのまとめ
| やりたいこと | コマンド |
|---|---|
| 状態を見る | git status |
| 変更を選ぶ | git add ファイル名 |
| 記録する | git commit -m "説明" |
| 履歴を見る | git log --oneline |
| GitHub から取り込む | git pull |
| GitHub に送る | git push |
| branch を作って移る | git switch -c 名前 |
| branch を移る | git switch 名前 |
確認テスト
手元で commit しました。同期の人がその変更を見られるのはいつ?
- commit した瞬間
- あなたが push し、同期が pull したとき
- パソコンを再起動したとき
答えを見る
2。手元とリモートは、push と pull をしたときだけ同期します。
自分の branch で作業する一番の理由は?
- main(公開されているサイト)を壊さずに試せるから
- push が速くなるから
- commit が不要になるから
答えを見る
1。
チェックリスト
- 自分の branch を作って commit した
- GitHub 上に自分の branch が見えた
- push と pull の違いを自分の言葉で説明できる