GitHub新機能「Fetch upstream」使ってみた! 1クリックで親リポジトリに追従(同期)
インターネットの皆さんこんにちは。
漫画でウェブ技術を楽しく学べる #わかばちゃんと学ぶ シリーズ作者の 湊川あい(みなとがわ・あい)@llminatoll です。
本日5月7日、GitHubが新機能を追加しました。それがこちら。
「これって、具体的には何がどう便利になったの?」「ボタンが2つあるけど、Compare と Fetch and merge、初心者にはどっち推奨すればええねん?」
そんな疑問を持つ方に向けて、触ってみて感じた、自分なりの見解を書いてみたいと思います。
取り急ぎ書いたので、間違っているところや、表現直した方がいいんじゃないの〜みたいなところがあったらリプライとかコメントで突っ込んでね。直します。
GitHub上で、ワンクリックで追従できる!
「フォークしたはいいけど、しばらくしたら親リポジトリのコミットが進んじゃってて、自分のリポジトリのコミットは古いまま。どうすれば、親リポジトリの新しいコミットを取り込めるの?」
今回発表されたGitHubの新機能 Fetch upstream を使えば、なんと!
クリックするだけで親リポジトリのコミットに追いつけます!
<操作手順>
① 自分のリポジトリのページにある Fetch upstream をクリック
②
A:親リポジトリ との差分を、まずは確認したい場合
→ Compare 👈 初心者さんはこっちがおすすめ
B:いきなりマージしたい場合
→ Fetch and merge
Compare を選択した場合、どんな変更が加わったか確認できる画面になり、自分のリポジトリに対してプルリクエストを作れます。
初心者のうちは Compare を選択して、プルリクエストを作った方がよいでしょう。Fetch and merge はいきなりマージされてしまうので、本当に親リポジトリの更新分を取り込んでいいのか、コードの内容を理解している必要があります。他の人にチェックしてもらってからマージした方が安全ですね。
従来は2段階で追従していた
初心者の方は「この機能ができるまではどうやっていたの?」と疑問に思う方もいるかもしれませんね。
従来は、手元のパソコンで、コマンド or GUIを使い、
① upstreamリポジトリからプル
② originリポジトリにプッシュ
という2段階の操作を行うのが普通でした。
これらの操作を、GitHub上からクリック1つでできるようになったというわけです。便利になりましたね。
「うちの会社はGitHubを使っていないから、そんな機能はないんだけど……」という方は、過去に私が書いた次の記事をご覧ください。従来の2段階で追従する方法を解説しています。
マンガでわかるGit 12話「本家リポジトリに追従する方法」
湊川の所感
「なんで今までなかったんだろう?」と思うぐらい、GitHubにとって自然な機能だと思いました。
勉強会で初心者の方に教えるとき、リポジトリ追従の概念を伝えるのって、本当にむずかしいんです。難易度:鬼です。実践してもらっても「???」みたいな、腑に落ちない顔をさせてしまうのが、申し訳なくて。ずっと心残りでした。
今回の新機能によって、初心者の方が理解しやすくなるだけでなく、中・上級者の方も手間が減って世界が効率化すると思いました。最高です。GitHubさんありがとう。
言葉の表現で気をつけているところ
あと、個人的に気をつけている日本語表現についても書いておきます。
今回のGitHubさんの公式のツイートの文章がこちらです。
You can now sync from the parent repo with just a single click!
私のツイートでは、
これは神!
GitHubが、クリックするだけで親リポジトリと同期できるようになったらしい!
としました。「これは神!」は注目を集めるためのフックの部分で、そのあとが翻訳ですね。
sync は直訳して「同期」としました。
しかしこの解説記事では、タイトル以外「同期」という言葉を使っていません。なぜか?
「同期」という言葉を使うと、初心者にとって誤解を生みやすいように思うからです。
実際、初心者の方から「originリポジトリとupstreamリポジトリを同期したら、古いほうに同期されちゃわないの?」という質問をいただいたことがあるのです。
確かに「同期」という言葉は「どっちをどっちに合わせるの?」という条件前提にありますものね。
それからは、私は解説文を書くときは「追従」という言葉を使うようにしています。
「追従」という言葉は「(新しい方に)追従する」という前提が含まれているからです。
中・上級者の方には「そんなの新しい方に同期されるに決まっとるじゃろ」と思われるかもしれませんが、初心者を対象にする上では、できるだけ複数解釈で迷わせたくないなぁって、そんなことを考えながら書いています。
……とか意識の高いこと言ってますけど、自分はスーパーハカーではなくて、大して頭の回転も早くないので「学生だった頃の自分でもわかる解説を書きたい」って思ってるだけです。
間に合えば、6月中旬発売予定の改訂版にもこの新機能についての内容を差し込みたい
そう思っています(滝汗)。
今の時点で、初校*ですが、出版社さんに「急遽、この内容追加したいんですけども! 入れられますか〜!!?!?!」と連絡したところです。
※初校・・・組版はすでに仕上がっていて、一番最初の校正の段階のこと
Takuma Tokumaさま、ありがとうございます〜。
湊川がんばります。
『わかばちゃんと学ぶ Git使い方入門』改訂版
2021/6/12 発売予定
改訂版で変わったこと
★操作画面の画像を、すべて新しく撮り直しました
★開発現場のリアルな声を、より反映しました
★セクションごとに対応コマンドを掲載
★最後の章に、ふろく「コマンド操作に挑戦!」追加
Amazon予約始まってまーす→ https://amzn.to/31lSHJi
Fetch upstream の話、もし書籍に載ってたら「湊川がんばったんだな」って思ってください。
載って無かったら、この記事はずっと公開しとくんで、困ってる後輩にSlackで送ってあげてください。
それじゃまたね。
おやすみなさい。
🌱
P.S.
最近テンションがブチ上がったツイートです。
(濱野さんはGit自体をメンテナンスしてる方で、超良書『入門Git』の著者の方です。とにかくすごい人です)