fork 元のリポジトリの更新を fork 先に merge する

のびのびラーニング
7 min readMay 17, 2020

--

YOLOv3 を tflite に convert する処理で pull request してみました
https://medium.com/@nobilearn/11155791c222
の続きです。

pull request が無事に merge されました!

ので、今回はこの original のリポジトリの更新を fork 先の自分のリポジトリに merge したいと思います。

なお、使用するリポジトリ名などは、今回実際に行ったものを記載していますので、ご利用の際にはご自身の環境に応じてご変更ください。

リモートリポジトリを追加

_
リモートリポジトリは、最初は origin のみです。
git remote というコマンドで確認することができます。

tensorflow-yolov4-tflite $ git remote
origin

ここに、original(fork 元)のリポジトリを git remote add で追加します。
ここでは "fork_origin" という名前で追加しています。

$ git remote add fork_origin

tensorflow-yolov4-tflite $ git remote add fork_origin https://github.com/hunglc007/tensorflow-yolov4-tflitetensorflow-yolov4-tflite $ git remote
fork_origin
origin

追加されました。

merge する

_
merge する branch (= master) に switch しておきます。

tensorflow-yolov4-tflite $ git checkout mastertensorflow-yolov4-tflite $ git branch -a
* fix_yolov3_convert
master
remotes/fork_origin/master
remotes/origin/HEAD -> origin/master
remotes/origin/fix_yolov3_convert
remotes/origin/master

更新を fetch して merge します。

tensorflow-yolov4-tflite $ git fetch fork_origintensorflow-yolov4-tflite $ git merge fork_origin/master
Updating 350f4bd..1b79f20
Fast-forward
benchmarks.py | 2 +-
convert_tflite.py | 8 +++++---
save_model.py | 6 +++---
3 files changed, 9 insertions(+), 7 deletions(-)

コミットログを確認すると、きちんと merge されています。

tensorflow-yolov4-tflite $ git log -2 convert_tflite.py commit bbecd37d374503529bf46cdb867091532b9b9084 (origin/fix_yolov3_convert, fix_yolov3_convert)
Author: nobi <nobilearn@users.noreply.github.com>
Date: Thu May 14 23:35:22 2020 +0900
fix error on TF 2.2.0 : 'tf.ResizeNearestNeighbor' op is neither a custom op nor a flex op.commit a80abc4f6424b5eb34d6b51ef07b4913f8aa96a1
Author: nobi <nobilearn@users.noreply.github.com>
Date: Thu May 14 23:26:38 2020 +0900
fix override in the case of yolov3 model; committed as a2903f7e6fe6e780bdd430e02d6a87f75db69513.

掃除する

_
これで pull request のために作成したブランチ fix_yolov3_convert は不要になりましたので、git branch コマンドに -d option を付けて削除します。

tensorflow-yolov4-tflite $ git branch 
fix_yolov3_convert
* master

$ git branch -d fix_yolov3_convert

tensorflow-yolov4-tflite $ git branch -d fix_yolov3_convert
Deleted branch fix_yolov3_convert (was bbecd37).
tensorflow-yolov4-tflite $ git branch
* master

今度は、自分のリポジトリの origin に git push で変更を同期します。

tensorflow-yolov4-tflite $ git push
Username for 'https://github.com':
Password for 'https://nobilearn@github.com':
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/nobilearn/tensorflow-yolov4-tflite.git
350f4bd..1b79f20 master -> master

しかしこれだけでは、自分のリモートの fix_yolov3_convert はまだ残っています。

tensorflow-yolov4-tflite $ git branch -a
* master
remotes/fork_origin/master
remotes/origin/HEAD -> origin/master
remotes/origin/fix_yolov3_convert
remotes/origin/master

リモートリポジトリのブランチは git push --delete コマンドで削除します。

$ git push --delete origin fix_yolov3_convert

tensorflow-yolov4-tflite $ git push --delete origin fix_yolov3_convert
Username for 'https://github.com': nobilearn
Password for 'https://nobilearn@github.com':
To https://github.com/nobilearn/tensorflow-yolov4-tflite.git
- [deleted] fix_yolov3_convert
tensorflow-yolov4-tflite $ git branch -a
* master
remotes/fork_origin/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

これで後片付けは作業は完了です。

以後も同様の手順で fork 元の更新を merge し、今後また pull request の機会があれば branch を作成し、fork 元に投稿するという流れになります。
そしてもちろん、独自のカスタムを実装していく選択もできます。

今回の内容は以上です。
ご精読頂き、まことにありがとうございます。

--

--

のびのびラーニング
のびのびラーニング

Written by のびのびラーニング

AI 技術者 (TensorFlow Developer Certificate) です

No responses yet