====== githubをこれから始める人へ ======
このページはこれからgithubを利用しようと思っているデザイン・アート系学生を対象とした解説ページです.主に動画を利用し,必要なポイントは動画の下にテキストでまとめておきます.
github上にリポジトリを作成して,pushしたり,人のリポジトリにプルリクエストを送る等,基本的な内容を紹介します.
===== 最初にコマンドラインを覚えよう =====
^ 用語 ^ 説明 ^
| ディレクトリ | macOSでいうところのフォルダ |
| ファイル | ワードやイラレといったデータファイル一般 |
| パス | /Users/baba/Desktop といったディレクトリの位置を示す文字列のこと |
==== コマンド一覧 ====
^ コマンド ^ 内容 ^
| open | 引数に開きたいパスをしていすることで,ファインダーを開きます |
| pwd | 現在いるパスを表示します(Print Working Directory) |
| cd | 引数に移動したいパスをしていして,ディレクトリを移動します |
| touch | 引数に作成したいファイル名を指定して,空ファイルを作成します |
| mkdir | 引数に作成したいディレクトリ名を指定して,ディレクトリを作成します. |
| mv | 引数が2つあり,最初に名前を変更したいファイル,次に変更したい名前を指定します. |
| rm | ファイルを削除します.本当に削除してしまうのでゴミ箱にも残りません. |
| ls | 引数で渡したパスにあるファイル一覧を表示します.引数を省略すると今自分がいるディレクトリになります. |
===== 自分のリポジトリを作成する =====
gitコマンドを利用した際に,fatal errorや,アクセスできない,といった主旨のメッセージが出る場合は,最近githubuではパスワード認証が廃止されたことが原因のようです.以下リンクに従って個人アクセストークンを取得して,パスワード入力には取得したアクセストークを利用してください.
* https://howpon.com/5308
なお,githubオフィシャルの設定方法は次のリンクからどうぞ.
* https://docs.github.com/ja/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token
* macOSのキーチェーンをコマンドラインで修正する例:https://docs.github.com/ja/github/getting-started-with-github/getting-started-with-git/updating-credentials-from-the-macos-keychain
^ 動画で利用した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にリポジトリを作成する ====
* 補足リンク
* [[https://ws.tetsuakibaba.jp/doku.php?id=p5js:01.%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83#visual_studio_code_%E3%81%A7%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B|vcコードのp5js用途設定の解説]]
* [[https://gist.github.com/mignonstyle/083c9e1651d7734f84c99b8cf49d57fa|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には大きく分けて
* チーム開発によるPull Request(forkを使わない)
* 他人のリポジトリに修正・追加したいPull Request(forkを使う)
の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することから始めます.先程のチーム開発と比べて,
- PRを送りたいリポジトリをforkする(ブラウザから行う)
- forkしたリポジトリをcloneする
- cloneしたローカルリポジトリで適当な名前のbranchを切って修正・追加を行う
- 変更した内容でforkしたリモートリポジトリにpushする
- ブラウザ上のforkしたリモートリポジトリページからpull requestを作成する
- 自分のPRをmergeしてもらったら,forkしたリポジトリも本家に合わせてmergeする
という流れになります.ではやってみましょう.
この回では特に新しいコマンドはありません.
====== Reference ======
* gitの入門周りのコマンドだけをまとめたページ:https://qiita.com/ay3/items/8d758ebde41d256a32dc