20220701 Git本 ご質問いただいた点
ご連絡いただきありがとうございます。湊川です。
以下、いただいたご質問に対する返信です。
いただいたページ数は改訂2版のものかと推測されましたので、その前提で返信しております。
P.163 自分用のテキストファイルを追加したら、どのようなブランチの様子になるのか、履歴図を示した方が良いと思います
アドバイスありがとうございます!
コミットの履歴図は次のようになります。
● add-myfile(あなたが新しいブランチで追加したコミット)
|
● master(masterブランチの最新のコミット)
|
︙(今までにコミットされてきた履歴)
新たに作られたブランチがmasterより先行する形になります。
見た目には、まっすぐ一本になっていると思います。
書籍の合間合間に、履歴図の状態があるとわかりやすいですね。次回増刷時に対応したいと思います。
p.164ではローカルブランチをGitHub上のリモートリポジトリにpushしますが、p.164上の図の意味が良くわかりませんでした。ローカルブランチは自分で作った「add-myfile」ですが、リモートブランチも「add-myfile」となりますでしょうか?
はい、そのとおりです。ローカルブランチは自分で作った「add-myfile」で、リモートブランチも「add-myfile」となります。
ローカルブランチとリモートブランチの名前はよっぽどの事情がない限り、合わせます。なぜかというとローカルブランチとリモートブランチの名前が違うと、単純に開発がしにくいからです。たとえば「Aというブランチにプッシュしたつもりの内容が、GitHub上ではBというブランチに反映されていた」となると、困ってしまいます。
「SECTION20 プルは実際に何をやっているの?」をご覧いただければ、ローカルブランチとリモートブランチの名前が同じである理由を仕組みからご理解いただけるかと思います。
リモートブランチ側ははじめにcloneしてきた「master」とすべきではないのでしょうか?
とてもいい質問です。深く考えながら実践していただきありがとうございます。
「変更した内容を、元のブランチになぜ反映させないのか?」と疑問に思っているということですよね。
まず、ローカルブランチとリモートブランチの名前を合わせるというのは大前提ですが、それは先程ご説明したとおりです。
masterにマージさせるのは、GitHub上でプルリクを使ってやります。それがGitHub上のお作法だからです。GitHubは複数人でコードをレビューしあいながらよくしていくためのツールです。なので、ソースコードを変更するときは、必ずプルリクをつくります。つまり、いきなりmasterに直接コミットするのはNGとされているということです。
masterになにか新しいコミットを追加するときは、かならずプルリクを経由します。よって、masterに直接コミットするのではなく、開発用のブランチ(今回はadd-myfile)を作って、「こんなふうに変更したいんだけどどうかな?」とプルリクを作成し、「OK」をもらったらマージされる(晴れてmasterに新規コミットが追加される)のです。
そして、pushまでを完了してもGitHubのmasterに自分が作ってpushしたはずのファイル(*.txt)が見当たらないです(ページ更新しても)。pushするとGitHub上で自分のファイルを確認できる様子を図で示していただきたかったです。
「プルリクを送ったのになぜエルマスさんのmasterブランチに自分のファイルが反映されないのか?」というご質問に対してお答えするならば、私がマージをしていないためです。
プルリクエストの仕組み上、リポジトリの持ち主がマージを許可しない限り、勝手に更新されることはない仕様になっています。
本当はすべてマージできるとよいのですが、現在マージ待ちのプルリクエストが1600件もあるため、ご迷惑をおかけしますが、何卒ご理解のほどお願いいたします。
ちなみにプルリク作成時、GitHubの「Open a pull request 」というページにおいて、赤字で小さく「Can’t automatically merge. Don’t worry, you can still create the pull request.」と書いてあると思います。日本語にすると「自動マージはされませんよ。でも心配しないでください、あなたはプルリク作成を続行できます」という意味です。
つまり、自動マージはされませんが、いくらでもプルリクを出す練習はしていただけるということです。
「自分のファイルを確認できる様子を示してほしかった」については、p170にキャプチャを載せているかと思いますが、これとは別のものをイメージされていますでしょうか。
またすでに報告に挙がっていますが、「Compare & pull request」が見当たらないです。いま、解決ページのリンクも切れてしまっていますので、教えていただけないでしょうか。
こちらの記事、リンク切れになっており申し訳ありませんでした。
elmas3のGitHubページ上のREADMEも修正しておきました。
以上です。
わかばちゃんと学ぶシリーズをご愛読いただきありがとうございます!
今後とも、よろしくお願いいたします。
湊川