Git7

やってみたこと

難しすぎたので理解するためにやった事を図にしてみました。

add-mame0124.png
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共に下記の状態になった。

P add-mame0124 had recent pushes 1 minute ago.png

1° mame0124add-mame0124 had recent pushes 6 minutes ago.png
自分のリモートリポジトリのネットワークグラフはこの状態。

gh-pages.png
⑤⑥コントリビューター(図では間違えてコラボレーターと書いている😅)を追加してgit pull origin add-mame0124した後も上記の状態は変わらず。

⑦Compare&pull requestボタンは自分のリポジトリメインページにも、upstreamブランチのメインページにもあるが、どちらからやっても結果は同じなのか?
そういった細かい事が分からないし、変なことをすると何が起こるか分からない恐怖😱

とりあえず指示通りupstreamブランチからpull requestを送った。
下記のリポジトリとブランチの指定を確認する。
compareがbaseにとりこまれる。

Open a pull request.png
出来たーーーー!!!長かった

Pasted Graphic 4.png
そしてupstreamブランチのネットワークグラフがこれ。

0766424.png
自分のリモートリポジトリの方はadd-mame0124を消したらネットワークグラフからも無くなった。
同じリポジトリの中でマージされたわけでは無く、さらに削除されたから何も残らないよう。

⑨git pull upstream gh-pagesした後の出力結果。

~patchwork gh-pages.png

* 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した内容を取り込むためののもの。

mame0124  patchwork.png

下記はjlord/patchworkリポジトリのgh-pagesへPRを送るためのもの。

Projects.png

1つのpushに対し、origin、upstreamの両方への変化があるので混乱していました!

 

今回やった流れはオープンソース(OSS)の開発で、会社などで開発する場合には、元のリモートリポジトリから自分のローカルに直にcloneし、そこからpush、pull request の形が多い様。