Git7
やってみたこと
難しすぎたので理解するためにやった事を図にしてみました。
①githubのjlord/patchworkのメインページからfork
をクリック。Fork
は人のリモートリポジトリから自分のリモートリポジトリにコピーすること
②forkしてきたmame0124/patchworkのメインページのcodeをクリックし、clone用のURLをコピーする。
$ git clone https://github.com/mame0124/patchwork.git(コピーしたURL)
Clone
は自分のリモートリポジトリから自分のローカルリポジトリにコピーする事。
クローンするとワークツリーのファイルは勝手に作られる!
だけど今いるディレクトリに作られるから確認して気を付ける!
元のリポジトリに変更があった時にpullできる様にgit remote add ...
で設定をしておく。
(元のリポジトリはupstreamという名前にする)
④git push origin add-mame0124
でリモートリポジトリにpushする。
ブランチをgh-pagesにするのか、add-mame0124にするのか分からなく調べた。
チーム開発ではプルリクエストを行い、masterへ統合される流れがおおいので、masterを指定することはあまりないと思います。
ということらしいのでmainのブランチではなくadd-mame0124へ。
この時点でupstreamとorigin共に下記の状態になった。
自分のリモートリポジトリのネットワークグラフはこの状態。
⑤⑥コントリビューター(図では間違えてコラボレーターと書いている😅)を追加してgit pull origin add-mame0124
した後も上記の状態は変わらず。
⑦Compare&pull requestボタンは自分のリポジトリメインページにも、upstreamブランチのメインページにもあるが、どちらからやっても結果は同じなのか?
そういった細かい事が分からないし、変なことをすると何が起こるか分からない恐怖😱
とりあえず指示通りupstreamブランチからpull requestを送った。
下記のリポジトリとブランチの指定を確認する。
compareがbaseにとりこまれる。
自分のリモートリポジトリの方はadd-mame0124を消したらネットワークグラフからも無くなった。
同じリポジトリの中でマージされたわけでは無く、さらに削除されたから何も残らないよう。
⑨git pull upstream gh-pagesした後の出力結果。
* branch gh-pages -> FETCH_HEAD
* [new branch] gh-pages -> upstream/gh-pages
これは、まずfechの内容を表しているのかな?と思う。
Jlord/patchworkのGh-pagesがリモート追跡ブランチにfetchされた事を表しているんだと思う。
その後のマージがFast-forwardマージをしたということか・・
であれば、その後の誰かのファイルはその後に追加されているのか?
もう最後の最後でよく分からない。。
内容修正
upstreamブランチへpull requestを送る部分で、
⑦Compare&pull requestボタンは自分のリポジトリメインページにも、upstreamブランチのメインページにもあるが、どちらからやっても結果は同じなのか?
そういった細かい事が分からないし、変なことをすると何が起こるか分からない恐怖😱
と書いていましたが、それぞれ実行する内容が全く違うものでした!!
正しくは、下記はmame0124/patchworkリポジトリのgh-pagesへ、pushした内容を取り込むためののもの。
下記はjlord/patchworkリポジトリのgh-pagesへPRを送るためのもの。
1つのpushに対し、origin、upstreamの両方への変化があるので混乱していました!
今回やった流れはオープンソース(OSS)の開発で、会社などで開発する場合には、元のリモートリポジトリから自分のローカルに直にcloneし、そこからpush、pull request の形が多い様。