iCAR Tutorial

第1章 git とは

  1. 1-1 変更を記録する
  2. 1-2 GitHub と branch

GitHub と branch

このレッスンで学ぶこと

  • GitHub と手元のリポジトリの関係
  • push と pull
  • branch で本流を壊さずに作業する方法

手元と GitHub

前のレッスンの commit は、あなたのパソコンの中だけの記録です。みんなで同じサイトを作るには、記録を共有する場所が必要です。それが GitHub です。

あなたのPCから GitHub へ push し、同期は GitHub から pull して受け取る
手元で commit した記録を GitHub に送るのが push、GitHub から受け取るのが pull

GitHub 上のリポジトリを「リモート」と呼びます。手元とリモートは、push と pull をしたときだけ同期します。自動ではありません。

作業を始める前に git pull をする習慣をつけてください。他の人の変更を取り込んでから始めると、食い違いが起きにくくなります。

branch: 本流を壊さずに試す

みんなが同じファイルを同時に直すと、作業がぶつかります。そこで、作業ごとに枝分かれした場所を作ります。これが branch(ブランチ)です。

main から自分の branch を枝分かれさせ、そこで commit し、最後に main へ取り込む
main から枝分かれして自分の branch で commit し、出来上がったら main に取り込む

研究室サイトでは、main に直接 commit せず、必ず自分の branch で作業します。

やってみよう: 自分の branch を push する

研究室サイトのフォルダに戻って作業します。GitHub の sfc-icar に push するには、org のメンバーである必要があります。招待がまだなら、先輩に頼んでください。

  1. 最新の状態にします。

    cd ~/Documents/sfc-icar.github.io
    git pull
  2. 自分の branch を作って、そこに移ります。名前の部分は自分の名前にしてください(例: practice-kamei)。

    git switch -c practice-あなたの名前

    switch は branch を切り替えるコマンドで、-c は「新しく作って切り替える」という意味です。

  3. 今どの branch にいるか確認します。* が付いているのが今の branch です。

    git branch
      main
    * practice-kamei
  4. README.md の最後に、自分の名前を 1 行書き足して commit します。

    git add README.md
    git commit -m "README に自分の名前を追加"
  5. GitHub に push します。はじめて push する branch は、送り先を -u origin branch名 で指定します。origin は「clone してきた元のリモート」につけられた名前です。

    git push -u origin practice-あなたの名前
  6. 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 しました。同期の人がその変更を見られるのはいつ?

  1. commit した瞬間
  2. あなたが push し、同期が pull したとき
  3. パソコンを再起動したとき
答えを見る

2。手元とリモートは、push と pull をしたときだけ同期します。

自分の branch で作業する一番の理由は?

  1. main(公開されているサイト)を壊さずに試せるから
  2. push が速くなるから
  3. commit が不要になるから
答えを見る

1。

チェックリスト