中安拓也のブログ

プログラミングについて書くブログ

【Git】既存のリポジトリから別のリポジトリを作成する

f:id:l08084:20190908203621p:plain 一瞬forkかなと思ったけどforkだとcommit履歴も持ってきちゃうし...

やりたいこと

  • リポジトリAをベースにリポジトリBを作成したい
  • commit履歴は引き継ぎたくない
  • 開発ブランチも引き継ぎたくない

バージョン情報

使用しているPCはmacです

  • macOS Mojave
  • git version 2.20.1

やってみる

Github上のl08084/taikinリポジトリを複製してl08084/conceptリポジトリを作成します。

なお、複製先のリモートリポジトリ(l08084/concept)は事前にGitHubなどで作成しておく必要があります。

# 複製したいリポジトリをクローンする
$ git clone git@github.com:l08084/taikin.git

# 複製したいリポジトリのプロジェクト配下に移動する
$ cd taikin

# gitの設定情報を全て削除(commit履歴、開発ブランチetc...)
$ rm -rf .git

# 複製先のリモートリポジトリへのpush
$ git init
$ git add .
$ git commit -m "Initial commit"
$ git remote add origin git@github.com:l08084/concept.git
$ git push -u origin maste

これでリポジトリの複製は完了です。

ポイントは、rm -rf .gitコマンドでgitの設定を全て削除しているところになります。
この手順を抜かしてしまうとgit remote add originコマンドを実行した時にリモートリポジトリの参照名であるoriginが衝突してfatal: remote origin already exists.エラーが発生してしまいます。