• このエントリーをはてなブックマークに追加
小飼弾の論弾 #182「意外に簡単、GitHubでの共同作業」
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

小飼弾の論弾 #182「意外に簡単、GitHubでの共同作業」

2020-12-12 07:00

     「小飼弾の論弾」で進行を務める、編集者の山路達也です。
     無料公開部分の生配信およびアーカイブ公開はニコ生・ニコ動のほか、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に書くのが簡単でしょうね。だからどっちか好きな方を選べばいい。

     
    この記事は有料です。記事を購読すると、続きをお読みいただけます。
    ニコニコポイントで購入

    続きを読みたい方は、ニコニコポイントで記事を購入できます。

    入会して購読

    この記事は過去記事の為、今入会しても読めません。ニコニコポイントでご購入下さい。

    コメントを書く
    コメントをするにはログインして下さい。