Pull Requestの作成
この演習では、tpu-dsg/git-hands-onに対してPull Requestを作成します。
この演習を通して、以下のことを学びます。
- GitやGitHubの基本的な操作
- Pull Requestを使用した、GitHubにおける共同開発の流れ
リポジトリをフォーク
Section titled “リポジトリをフォーク”まずは、tpu-dsg/git-hands-onをフォークしましょう。
フォークは他のユーザーのリポジトリを自分のアカウントにコピーすることです。自分が書き込み権限を持たないリポジトリに対して変更を提案するには、フォークする必要があります。
- tpu-dsg/git-hands-onにアクセスします。
- ページ右上の「Fork」ボタンをクリックします。
Create fork
ボタンをクリックします。
リポジトリをクローン
Section titled “リポジトリをクローン”次に、フォークしたリポジトリをローカルにクローンしましょう。クローンとは、リモートリポジトリをローカルにコピーすることです。
- フォークした自分のリポジトリの「Code」ボタンをクリックします。
HTTPS
を選択し、表示されているURLをコピーします。(SSHでセットアップを行っている場合はSSH
を選択します。)- リポジトリのファイルを置きたい場所でターミナルを開くか、コマンドを使用して移動します。
Terminal window # 例: "dsg"ディレクトリを作成し移動する場合mkdir dsgcd dsg git clone
コマンドを使用してリポジトリをクローンします。<URL>
には先ほどコピーしたURLを貼り付けます。Terminal window git clone <URL>Terminal window cd git-hands-on
ブランチを作成
Section titled “ブランチを作成”次に、作業用のブランチを作成しましょう。ブランチを作成することで他の作業との競合を避けることができます。
以下のコマンドを使用して、main
ブランチから新しいブランチ「exercise
」を作成し切り替えます。
git checkout -b exercise
VSCodeでは、左下の「main」(現在のブランチ名)をクリックして「新しいブランチの作成」を選択します。そしてブランチ名「exercise
」を入力することでブランチを作成できます。
あなたは現在、exercise
ブランチにいます。コマンドを使って確認してみましょう。
git branch# 以下のように表示されているはずです# * exercise# main
ファイルを追加
Section titled “ファイルを追加”次に、このリポジトリに新しいファイルを追加しましょう。
exercise/
ディレクトリに<GitHubユーザーID>.md
を作成します。例えば、The Octocatさんの場合はoctocat.md
となります。
Directory.github/
- …
Directorydocs/
- …
Directoryexercise/
- ユーザーID.md 作成するファイル
- LICENSE
- README.md
- …
作成したMarkdownファイルに、なにか内容を追加してみましょう。良い案が思いつかないなら、以下のような内容を追加してみてください。
# 吾輩は猫である
夏目漱石
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ。この書生というのは時々我々を捕えて煮て食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始であろう。この時妙なものだと思った感じが今でも残っている。第一毛をもって装飾されべきはずの顔がつるつるしてまるで薬缶だ。その後猫にもだいぶ逢ったがこんな片輪には一度も出会わした事がない。のみならず顔の真中があまりに突起している。そうしてその穴の中から時々ぷうぷうと煙を吹く。どうも咽せぽくて実に弱った。これが人間の飲む煙草というものである事はようやくこの頃知った。
[夏目漱石 吾輩は猫である - 青空文庫](https://www.aozora.gr.jp/cards/000148/files/789_14547.html)
変更をコミット
Section titled “変更をコミット”次に、作成したファイルをコミットしましょう。コミットとは変更を記録することです。これにより任意のコミット時の状態に戻すことができるようになります。
まず、コミットするファイルをステージングします。これはどの変更をコミットするかを指定する作業です。ここでは扱いませんが、行ごとに変更をステージングすることもできます。
git add exercise/<ユーザー名>.md# または変更したファイルすべてをステージングするgit add .
VSCodeでは、ソース管理パネルから変更をステージングできます。
次に、コミットメッセージをつけ、ステージングした変更をコミットします。今回は先頭にexercise:
をつけることを必須とします。コミットメッセージは変更内容を簡潔に表すものであるべきです。
git commit -m "exercise: 吾輩は猫であるの冒頭を追加"
VSCodeでは、以下のようにコミットメッセージを入力してコミットできます。
さらに変更を加える
Section titled “さらに変更を加える”次に、作成したファイルにさらに変更を加えてみましょう。先ほど「吾輩は猫である」を追加した場合は、その続きを追加してみてください。
# 吾輩は猫である
夏目漱石
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ。この書生というのは時々我々を捕えて煮て食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始であろう。この時妙なものだと思った感じが今でも残っている。第一毛をもって装飾されべきはずの顔がつるつるしてまるで薬缶だ。その後猫にもだいぶ逢ったがこんな片輪には一度も出会わした事がない。のみならず顔の真中があまりに突起している。そうしてその穴の中から時々ぷうぷうと煙を吹く。どうも咽せぽくて実に弱った。これが人間の飲む煙草というものである事はようやくこの頃知った。この書生の掌の裏でしばらくはよい心持に坐っておったが、しばらくすると非常な速力で運転し始めた。書生が動くのか自分だけが動くのか分らないが無暗に眼が廻る。胸が悪くなる。到底助からないと思っていると、どさりと音がして眼から火が出た。それまでは記憶しているがあとは何の事やらいくら考え出そうとしても分らない。
[夏目漱石 吾輩は猫である - 青空文庫](https://www.aozora.gr.jp/cards/000148/files/789_14547.html)
先ほどのコミットからの変更点を確認してみましょう。
git diff
VSCodeでは、ソース管理パネルから変更点を確認できます。
では、先ほどと同様にステージングしてコミットしてみましょう。
git add exercise/<ユーザー名>.mdgit commit -m "exercise: 吾輩は猫であるの第三段落を追加"
リモートリポジトリにプッシュ
Section titled “リモートリポジトリにプッシュ”次に、ローカルリポジトリの変更をリモートリポジトリにプッシュしましょう。プッシュとは、ローカルリポジトリの変更をリモートリポジトリに反映させることです。
git push origin exercise
VSCodeでは、ソース管理パネルの「Branchの発行」をクリックしてプッシュできます。
Pull Requestを作成
Section titled “Pull Requestを作成”最後に、フォーク元のリポジトリに対してPull Requestを作成しましょう。Pull Requestとは、変更を取り込んでもらうためのリクエストです。取り込んでもらう前にレビューを受けることができます。
- 自分のGitHubリポジトリのページにアクセスします。
- 「Compare & pull request」ボタンをクリックします。
- 変更内容を記載し、「Create pull request」ボタンをクリックします。
Pull Requestが作成されると、リポジトリのメンテナーがレビューを行い、変更を取り込むかどうかを決定します。
マージされたら
Section titled “マージされたら”マージされたら元のリポジトリに変更が反映されます。おめでとうございます!🎉
不要なブランチは削除しておきましょう。
git checkout maingit branch -D exercise
VSCodeでは、「ソース管理」横のミートボールメニューからブランチを削除できます。