目次

githubをこれから始める人へ

このページはこれからgithubを利用しようと思っているデザイン・アート系学生を対象とした解説ページです.主に動画を利用し,必要なポイントは動画の下にテキストでまとめておきます. github上にリポジトリを作成して,pushしたり,人のリポジトリにプルリクエストを送る等,基本的な内容を紹介します.

最初にコマンドラインを覚えよう

用語 説明
ディレクトリ macOSでいうところのフォルダ
ファイル ワードやイラレといったデータファイル一般
パス /Users/baba/Desktop といったディレクトリの位置を示す文字列のこと

コマンド一覧

コマンド 内容
open 引数に開きたいパスをしていすることで,ファインダーを開きます
pwd 現在いるパスを表示します(Print Working Directory)
cd 引数に移動したいパスをしていして,ディレクトリを移動します
touch 引数に作成したいファイル名を指定して,空ファイルを作成します
mkdir 引数に作成したいディレクトリ名を指定して,ディレクトリを作成します.
mv 引数が2つあり,最初に名前を変更したいファイル,次に変更したい名前を指定します.
rm ファイルを削除します.本当に削除してしまうのでゴミ箱にも残りません.
ls 引数で渡したパスにあるファイル一覧を表示します.引数を省略すると今自分がいるディレクトリになります.

自分のリポジトリを作成する

gitコマンドを利用した際に,fatal errorや,アクセスできない,といった主旨のメッセージが出る場合は,最近githubuではパスワード認証が廃止されたことが原因のようです.以下リンクに従って個人アクセストークンを取得して,パスワード入力には取得したアクセストークを利用してください.

なお,githubオフィシャルの設定方法は次のリンクからどうぞ.

動画で利用したgitコマンド 説明
git init リポジトリに対応するディレクトリで一番最初に使うコマンド.必要な隠しファイルが自動生成される.
git add README.md 更新したいファイルにREADME.mdというファイルを追加します
git commit -m “first commit” README.mdファイルに “first commit”というコメントを付けてコミットするぜ!という宣言(まだ更新はしない)
git branch -M main メインとなるブランチを main という名前にする(なにもしなければ master という名前になっている)
git branch ブランチ一覧を表示(現在はmainしかない)
git remote add origin hogehoge.git 任意のリポジトリurlをorigin という名前でリモートリポジトリとして追加する
git push -u origin main 先程追加したリモートリポジトリのmainブランチに add, commit した内容をpush(更新処理)する.

練習:p5jsプロジェクトでgithubにリポジトリを作成する

Branchを使って手軽にバージョンを管理する

ここではBrachという機能を利用して,簡単なバージョン管理方法に関して解説します.

Branchの作成とpushと削除

まず最初はbranchの作成と削除について,ローカル及びリモートリポジトリについて解説します.

コマンド 解説
git branch ローカルリポジトリに存在するbranchの一覧を表示
git branch test ローカルリポジトリにtestというbranchを作成する
git checkout test test branchに移動する
git branch –delete test test branchを削除する(ただし,testブランチにcheckoutしている場合や,test branchで更新内容をpushしている場合は,削除できない)
git branch -D test test branchで更新内容をpushしてしまった場合でも強制的にローカルbranchを削除したいときに使う
git push origin :test リモートのtest branchを削除する

branchをmainにmergeする

作成したbranchがある程度開発が進み,mainにしてもよいな,というときに行います.よくやるのは開発系ブランチで常に作業しながら,動作確認がとれたらmainにマージしていくみたいなやり方かなと思います.

コマンド 解説
git merge dev devブランチをmainにマージする(マージ対象となるブランチに必ずcheckoutしておく必要があります)

編集しちゃったファイルを前回の状態に戻す(cloneを使わない)

上記の動画最後に,最悪git cloneで最初に戻しちゃえばよいよ,という話をしました.でもしましまからもうちょっとちゃんと戻し方は説明したほうがいい,という雰囲気を感じたので個ここに追記します.先程の動画では最新の状態から修正をはじめて,「やっぱやめた」という具合に修正内容を戻す場合にpullを利用して失敗していました.これは最新の状態から編集を始めたため,pullをしてもローカルもリモートも同じコミットバージョンであったため,Already up to dateと言われて,元には戻せない,という状況でした.以下の動画では最新の状態から編集をはじめてその編集内容を戻す様子を収めて置きました.

コマンド 説明
git reset README.md README.msを一旦 git add してしまった後に「やっぱりやめた」というときに使うコマンドです
git reset -hard HEAD ファイルの編集を始めたけど一旦最初の状態に戻したいときはこのコマンド

Pull Request

Pull Requestには大きく分けて

の2種類があります.githubを使い始めの頃は,pull requestは知り合いに送ったり,研究室内での共同開発用途が多いと思うので,forkを利用しない方式ですが,ある程度開発になれてきたら赤の他人のリポジトリを直したり機能追加してあげたりすることもあると思います.その場合にはforkを利用するPull Requestとなります. 

チーム開発によるPull Request

すでに共同で開発をする人がいるという前提からスタートします.この開発の場合はAさんが作成したリポジトリをBさんがcloneして,これまで説明したやり方で簡単にAさんが作成したブランチを更新することができます.もっとも簡単な例はmainブランチをBさんが更新してしまうやり方でしょう.

Aさんが作成したリポジトリのmainブランチにBさんが直接pushする

Aさんが作成したリポジトリにBさんがdevという名前のブランチでpushして,Pull Request(mainにマージして頂戴のアピール)を作成して,Aさんがmainにマージするまで

他人のリポジトリにPull Requestを送る

このやり方はこれまでの内容とほぼ同じです.唯一違う点は,git cloneから始めるのではなく,対象となるリポジトリをforkすることから始めます.先程のチーム開発と比べて,

  1. PRを送りたいリポジトリをforkする(ブラウザから行う)
  2. forkしたリポジトリをcloneする
  3. cloneしたローカルリポジトリで適当な名前のbranchを切って修正・追加を行う
  4. 変更した内容でforkしたリモートリポジトリにpushする
  5. ブラウザ上のforkしたリモートリポジトリページからpull requestを作成する
  6. 自分のPRをmergeしてもらったら,forkしたリポジトリも本家に合わせてmergeする

という流れになります.ではやってみましょう.

この回では特に新しいコマンドはありません.

Reference