「小飼弾の論弾」で進行を務める、編集者の山路達也です。
無料公開部分の生配信およびアーカイブ公開はニコ生・ニコ動のほか、YouTube Liveでも行っておりますので、よろしければこちらもぜひチャンネル登録をお願いいたします!
今回は、2020年08月18日(火)配信その3をお届けします。
次回は、2020年12月22日(火)20:00の配信です。
お楽しみに!
2020/08/18配信のハイライト(その3)
- GitHub講義の続き
- GitHubの「1番素敵なところ」と「ググればなんとかなる」難易度
- 今のブラウザのデカさと複雑さ
GitHub講義の続き
山路:ほうほう。これ今Issueのところでやってるんですよね。
小飼:そうです。Issueのところでやってます。
山路:commitか何かボタンを押すと。
小飼:commitじゃなくて、これはあくまでもIssueなので、だから文句はここでつけてくれっていうことですよね。まぁ説明書きにしておきますか。「とりあえず今までの」。
山路:これが、ああそうだ。Submit new Issueが押されたら、私らのところにも反映されてくるという。
三野:ああここに入るんだ。なるほど。
山路:まぁ掲示板的なもんですよね。
三野:自分もnew issueで押して書けば、掲示板みたいになって、皆に伝えられる。
山路:そうです。
三野:なるほど。
山路:管理的な立場の人が、それを解決したけりゃ、そのissueは。
小飼:管理人はこの場合、僕なので。「実際の活動はこれから」と書いた上で、これをポチッという風に押すと、はい。
山路:こんな感じで。
小飼:実際ソフトウェアを。
三野:どこを押せばいいんですか? ないぞ。
山路:ブラウザの再読み込みボタンですがな。これは別にGitHubの機能じゃないけど、普通にブラウザの。
小飼:そうするとIssueが1個あるという風になるので。
三野:うん、今のところを押してみると、ああ。
小飼:皆さんも適当に書いて下さい。これでClose Issueというのがあって、要は問題が解決したら、ここを押すわけですね。このCloseを押せるのは、Issueを上げた人か。
山路:管理者。
小飼:管理者かどっちかですね、よろしくお願いします。そうそう。
三野:ほう。
「command+Rで再読み込み出来るよ」(コメント)
山路:アドレスバーの横にあるこれと同じことです。それをショートカットでやってる。
三野:なるほど、ありがとうございます。もうIT音痴で困る。
小飼:そうすると全体のところにも、出てくるので問題点はこうやって上げていけっていうやつですね。これはまあ僕のわりと小規模なリポジトリの場合ですけれども、たとえばこれででかいやつとか、そうですね。凄いメジャーなRubyです。Rubyとかっていうのを見ると、たとえばスターを押している人とかっていうのも、1万7千件くらいあるわけですよね。
なんですけども、Pull requestとかもいっぱい上がっているわけですよね、こういう風に。
山路:このPull requestとかこの辺のなんかGit絡みで凄くけっこうややこしいというか、なんかとっつきにくい。
小飼:ようはリポジトリをまるごと持ってこれるんですね。それをフォークと言います。実際のフォークを見てみましょうかね。じゃあ今度山路さんの方に挿して貰いますかね。
適当に、ちょっとさっきのページ、それですね。それというのか、じゃあええと1つ戻って、更に戻ってというか、トップ画面に行って。そこですね。これがたぶんGitの最大の特徴だと思うんですけども、Gitで開発しよう時っていうのは。
じゃあ画面映してというのか、ここにForkというボタンがありますので、これをポチッと押してみます。これですね。
三野:私も押していいですか?
小飼:押していいですよ。はい。そうするとForkしてますという。
三野:Fork、Forking。
小飼:そうすると、今度は山路さんバージョンの同じリポジトリが出来るんですよね。
山路:うんうん。
小飼:だからここ見てみると、Github.comの後が、dankogaiでなくて山路さんのIDになってますよね。だからこれ全く同じコピーなんですよ。リポジトリまるごとなんですよ。
じゃあ、ここでじゃあちょっとReadmeを書き換えてみましょう。
またこれ手で書き換えられますからね。たとえばここで、ポンと……ああそうかキーの配置が違うのか。
山路:ああごめんなさい。私、親指シフトにして。
小飼:ああ英数にして。
山路:これはちょっと打てないですよね。
小飼:ええと、じゃあ英語でやっちゃいます。
山路:しかも日本語キーボードだから、弾さん慣れてないですよね。
小飼:まあ、あくまでも適当に書きますよ、ここは。適当に書きます。Commit Changesというのを押すと、これはあくまでも今、山路さんが山路さんのリポジトリを書き換えてるんですね。
僕の方はまだぜんぜん変わってないです。ここで書き換えたんだけども、じゃあ弾さん、僕が書き換えたのを反映させて下さい、という時に、ここでPull requestという概念が出てくるんです。
じゃあ、またてっぺんまで行って、ここに今度Pull requestというのが出てきますよね。これを押してみます。これ本当に、本当にどうしようもない、1行しか変わっていないPull Requestですけど、でもこれは立派なPull Requestなわけですよね。
こうすると、まあこういうのが出て来るわけですよね。で、Reviewしろ何だろというのが出てくるんですけども、特にここでは特にやんなくて、そのままPull Requestというのを送ると、これで解説が出てきて。
山路:うんうん。なんかどうにかこうにかこういう事を書いたよみたいな。
小飼:ああそうか、Deleteキーの位置も違うんだ。「for request.」これでPull Requestというのを押すと、マージ出来るかどうかというのが出て来るわけですよね。じつはですね、Gitが人気を博した最大の理由というのは、まずコピーをまるごと作るとさっきも見た通り、その後に、コピーをまるごとマージ出来るか。
これ、こっちじゃなくて、ええとどれだ? これだね、こっちか? これか、はい。そうするとPull Requestというのが、ああ違う、今度はあれだ、また違う、僕の方に下さいということで、はい。ちょっと暫くお待ちを。
GitHubの「1番素敵なところ」と「ググればなんとかなる」難易度
小飼:ちゃんとミラーになってますね。じゃあこれズームして、すみません、お手数をおかけします。はい。ここらへんですね、ズームして欲しいのは。ここにPull Requestというのに、1つ来てますよね。Readme、Updateしろというのが来てて。GitHubが1番素敵なところというのはですね、このPull Requestを自動でマージ出来るんですよ。僕がやらなければいけないのは、ここをクリックするだけ。
ここをクリックするとこういう風に、まあCommit messageとか、まあCommit messageは、まあ僕が更に続きも出来るんですけど、特に何も考えずに、ポチッとなと。まぁこれでもうおしまいなわけですよ。
山路:なるほどね、私の方ではPull RequestはClosedって。
小飼:そういうことです。
三野:ああ。
小飼:そう、だからここをこういう風に書き換えて欲しいというのは、Issueでこうして欲しいと上げるのもいいんですけども、実際にこう書き換えました、どうでしょう? というのも出来るわけですよね。
山路:なるほどなるほど。これさっきやったのは、弾さんのやつのリポジトリをフォークしないで、弾さんのそのリポジトリに直接アクセスして、私の方も書いたり出来ましたよね。
小飼:そうそう。Issueとかっていうのは、まああくまでも、そうなわけです。何といえばいいのかな、要は掲示板みたいなもんですよね。掲示板みたいというか、掲示板そのものですよね。なんですけど、フォークしてPull Requestを送るというのは、自分でもリポジトリを持ちつつ、そこで作業して変更した分というのを送りつけることによって。
山路:これ弾さん、ここで私のとこ弾さんの本家のそのリポジトリも見えますけども、そこのコードを私がここから直接書き換えることは出来ない。それはやっぱ書き換えようと思ったら。
小飼:自分がフォークした分というのは、フォークした時点で自分のものですから自由に出来る。けどもそれを本家に差し戻そうと思ったら、リクエストを出さないといけない。
でもリクエストで、だからさっきも見たように、その書き換えを反映させるのも、ボタン1発で出来るわけです。だから本来のGitというのは、そこまで簡単ではないんで。
山路:ですよね。なんか凄いブランチをどうのこうのみたいなことがあったりとか。
小飼:そうなんですよ。別のブランチを切ってとかでなくて、GitHubを使うことによって、デフォルトであるブランチは大抵マスターという名前がついてるんですけども、マスター、簡単なものであればマスター直でもいい。まあちょっと行儀悪いんですけどね。
たとえばRubyみたいに、重要なものに、改変を加えたいといったら、その書き換える部分の名前をつけたブランチも切った上で、それでPull Request出したりするんですけど、それはさておき。マージの作業がずっと簡単になったと。じゃあこれ戻しますね。はい。
三野:ふーん。じゃあ誤字脱字とか、これは直して絶対大丈夫と思ったものを、それも勝手に直すことは、そういう機能はないんですか?
小飼:だから誤字脱字があったので、こう直しました、というPull Requestを投げればいい。
三野:やっぱり、うん。なるほど。
小飼:でも1文字や2文字であれば、Issueに書くのが簡単でしょうね。だからどっちか好きな方を選べばいい。