Linux
Git

公開リポジトリをフォークして非公開リポジトリにする

どうも。
OSSなどで公開されているリポジトリをフォークして、社内で使用したりしたい場合があります。
しかし、安易にgithubのforkボタンを押すと、公開リポジトリとしてフォークされてしまいます。
そこで、公開されているリポジトリを非公開なリポジトリとしてフォークしましょう。

追記: @him0 さんより以下のコメントを頂きました。
フォークする場合は必ずライセンスを確認しましょう。

プライベートリポジトリにするにあたってライセンス確認しないとけないと思います。

1. まず、フォークしたい元のリポジトリを、bareモードでクローンします。

$ git clone --bare https://github.com/hoge/hoge

また、この時Git lfsを使用している場合は以下のようにしてGit lfsのfetchもしましょう。

$ cd hoge.git
$ git lfs fetch --all
$ cd ../

2. 次に、githubで新しく空のリポジトリを作ります。ここでプライベートにするのを忘れないでください。

k.png

3. 最後に、先程クローンしたコードを、ミラーモードで自分のリポジトリにプッシュします。

$ cd hoge.git
$ git push --mirror git@github.com:myname/myrepo
$ git lfs push --all git@github.com:myname/myrepo #git lfsを使用している場合のみ
$ cd ../
$ rm -rf hoge.git

これで終わりです。結構簡単ですね。

参考: https://help.github.com/articles/duplicating-a-repository/