なぜ使うか
なぜわざわざわGithubなんてものを使うかというと,自分は以下のモチベ―ションで使っている.
- ファイルが突然消えてしまうのを防ぐため.ローカルのファイルはいつでも消え得る.PCに水をこぼして壊してしまったり,まちがえて削除してしまったりなど.自分も個人開発していたときに悲劇に見舞われてから,Githubを使うようになった.何十時間,何百時間もかけてかいたコードが一度でも消えてしまった経験があれば,Githubからは離れられなくなる.
- 他の人と一緒に開発できる.sandbox内だけではあまり恩恵を感じないかもしれないが,それでも他の人の進捗状況を把握したりできる.コードに誤りがあれば指摘できる.もちろん,同時に開発できるのが強み.
- 何かと就活で求められる.応募条件にGithubが使えることが必須という場合が多々.というか,Github自体は正直まったく難しくないので,「え?できないの?ヤバくね?」という感覚でもある.
- 他人に自分の成果を見せびらかせる.個人開発したプロダクトのコードを披露する場でもあるし,就活でもよく見せる.大学院入試でも使った.もちろん,sandboxだって,上司に自分がどれだけ仕事をしているのか具体的にアピールする場だと思う.1週間一度も更新されてなかったら,「この人仕事してなくね?」って思われても仕方がない.だってコード書いていないのと同じなのだもの.
割と下心多めだが,個人的にはこんな感じ.
Github 基本編
さて,Githubを使いたくなったら,次は実践である.とにかく使おう.Github上にファイルをアップロードするだけなら,まったく難しくない.たった5ステップ.以下がコードだ.
# gitを初期化する -> このフォルダでgitを利用しますよ,という宣言.
$ git init
# レポジトリを登録する -> レポジトリとはGithub上のフォルダ.レポジトリを作成したら,レポジトリのurlを登録しよう.アップロード先を登録する感覚.
$ git remote add origin https://github.com/...
# コミットするファイルを指定.「.」とは全てのファイルという意味..gitignoreやdockerなど様々な場面で使うから覚えておこう.ここはあまり気にせずgit add .しておけばいいと思っている.
$ git add .
# コミット.ローカルの中で保存するイメージ.アップロードする準備でもある.コミットメッセージは何でもいいが,「update ファイル名」とか変更点をメモする感じ.コミットメッセージの意義は後述.
$ git commit -m "コミットメッセージ"
# Githubにファイルをアップロードする.originとはレポジトリのurl(git remote add で指定したでしょ).masterとはブランチの名前(後述).
$ git push origin master
以上これだけ.本当に簡単.だって,たったの5ステップ.
ここで注意点だが, 直接アップロードは厳禁.これらはすべてコマンドラインで完結させる.でないと手間がかかって仕方がない.(ちなみにコマンドラインはVSCodeの下にくっついているターミナルのこと.)
Github 発展編
以上で述べた内容は,自分が個人で使ってたときの理解.これでとくに困ったことはなかったが,ミルプラトーで一応チームでやる中で,発展的な内容も学んだので,ここに記しておく.sandbox内で作業するだけであれば,とくに使う場面もないとは思う.が,やっぱり理解しておくと役立つ.
# 既存のレポジトリを引っ張ってくる.チーム外であればgit clone, チーム内であればgit pullという理解.git pullは変更点のみ引っ張ってくるため軽い.
$ git clone ... / git pull ...
# ログを確認する.元に戻したくなったときなどに使う.
$ git log
$ q (ログから抜ける)
# ブランチを作成する.複数人のときに使う.ブランチ切って開発進めたり,プルリクしたり.
$ git branch branch_name
# ブランチを切り替える
$ git checkout branch_name
# プルリクエスト -> pushして,Github上でCompare & pull request. 大元のコードと統合するとき.ちなみにプルリクエストはGithubの機能.
$ git push origin branch_name
# コミットを取り消す. revert は基本的に直前のコミットの取り消しのみに使う.
$ git revert commit_id
$ git revert HEAD
$ git revert --no-edit coomit_id
# git reset -> HEADの位置を大きく移動できるが,以前のコミットの復元に手間
# 直前のコミットを取り消したい
$ git reset --hard HEAD^
# n個前のコミットまで戻したい
$ git reset --hard HEAD~n
# 誤ってresetをしてしまった場合
$ git reset --hard ORIG_HEAD
Github 趣味編
コミットはできるだけ細かく.コードを元に戻したくなったとき,他の人がコードをチェックするときに役立つ.余裕があるときは自分は以下の記法を採用している.
1行目: コミットの内容を表す絵文字 + 変更内容を簡潔に英語の命令形で記述
2行目: 空行
3行目以降: なぜ変更したのか詳細な説明を日本語で記述
$ git commit -m ":bug: fixed bug"
こうすると, 🐛 fixed bugみたいに表示されて分かりやすい.そして楽しい.導入は .commit_templateを追加するだけ.vad-sandbox/.commit_template at master · milplateaux/vad-sandbox