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 元に投稿するという流れになります。
そしてもちろん、独自のカスタムを実装していく選択もできます。

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

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

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

Written by のびのびラーニング

AI 技術者 (TensorFlow Developer Certificate) です

No responses yet

Write a response