【覚書】GitHubで公開されているOSSに参加するときに使うgitコマンドとか

コマンドラインを親の仇のように憎んでいるんだけど気まぐれでローカル開発環境をめちゃくちゃにした結果コマンドラインから操作する方が安全 みたいな状態になったのでメモ

書いている人間はgitについてスライムくらいの知識しかないのでもっとスマートなやり方があるかもしれないし、なんならコマンドに間違いがあるかもしれない

前提

github.com

OSSプロジェクトの例として「艦これウィジェット」を用いる。先月末「艦これ」が二期を迎え、「艦これウィジェット」では以下のようにブランチを分けて開発をしています。

  • developブランチでv2の不具合修正
  • v3/developブランチでv3の開発

Special Thanks: id:otiai10

このエントリでは基本的にv3の開発をする場合のコマンドをメモしています。
またコマンド中のGitHubユーザー名は「wifeofvillon」、リポジトリ名やブランチ名も執筆時点で実在するものを使用しています。

リポジトリのfork

f:id:wifeofvillon:20180925124108p:plain

「fork」ボタンを押すと自分のGitHubアカウントにforkできる

forkしたリポジトリをclone

# GitHubからリポジトリをclone
$ git clone git@github.com:wifeofvillon/kanColleWidget.git

対象プロジェクトはnpmでパッケージ管理されているので、ローカルで動作確認をする場合はv2/v3それぞれのReadmeに従ってnpmコマンドを実行する

ローカルでブランチを切る

# branchの確認
$ git branch -a

# v3/developに変更を加え(るためにbranchを切り)たい
$ git checkout v3/develop

# v3/developからブランチを切る
$ git branch
$ git checkout -b fix-screenshot-button

対象プロジェクトでは手を加えたい場合(v3/)developブランチに対してPull requestを送ることになっているので(v3/)developからfix/featureのためのbranchを切る

ローカルブランチをリモート(GitHub)にPushする

# branchの確認
$ git branch -a

# 変更の確認
$ git status
$ git show

# リモートへpush
$ git push origin HEAD

commitは割愛

fork元リポジトリの変更を反映する

fork元リポジトリもガンガン変更されていくのでpullしなきゃいけないんだけど、毎回merge commitが発生して気持ち悪かったのでTwitterで訊いたら丁寧に教えてもらえた(本当にありがとうございます

# ベースになるブランチに移動
$ git checkout v3/develop

# fork元の当該ブランチをpull
$ git pull otiai10 v3/develop

# 変更を確認
$ git status
$ git show

tl;dr

二段階認証を有効にしている場合

この辺を設定すると楽

wifeofvillon.hatenablog.com

GitHub Desktopとキーチェーンアクセス

今更なんでgit commandを叩いているかというとMacにログインしているApple IDを変更したらキーチェーンアクセスにGitHub Desktopがアクセスできなくなって延々パスワードを訊かれたからです。気まぐれ(じゃなくて理由はあるんだけど)でそういうことはしないようにしよう!

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

ソフトウェアデザイン 2018年10月号

ソフトウェアデザイン 2018年10月号