LoginSignup
36
42

More than 5 years have passed since last update.

新規のgitリポジトリに、別リポジトリの過去履歴を丸ごとpushする方法

Posted at

githubに作ったリポジトリ名がダサかったので名称を変更する予定でした。
が、renameボタンを見つける前に空リポジトリを作成してしまったため、rename出来ず。

しょうがないので既存リポジトリのコミットを、丸ごとgitの機能でコミットし直しました。
importとか出来そうですが、応用の効くこちらのやり方だけ覚えとくようにしてます。

手順

超簡単です。
1. 既存リポジトリのremoteアドレスに新規のアドレスを追加する。
2. 新規アドレス向けに、今あるリポジトリのブランチをコミットする。

1. 既存リポジトリのremoteアドレスに新規のアドレスを追加する。

既存リポジトリに移動し、以下コマンドを利用します。

$ git remote add new https://github.com/developer-kikikaikai/design_pattern_for_c.git

addの後がキーワード、その後がurlです。git config --listで設定確認。

$ git config --list
...
remote.origin.url=git@github.com:developer-kikikaikai/practice_design_pattern.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
remote.new.url=https://github.com/developer-kikikaikai/design_pattern_for_c.git
remote.new.fetch=+refs/heads/*:refs/remotes/new/*

remoteアドレスは普段remote.originだけなんですが、上でnewというキーワードでurlを追加したため、remote.new.urlという設定が追加されました

2. 新規アドレス向けに、今あるリポジトリのブランチをコミットする。

今回は新規コミットなので-fを付けていますが、こんな感じ。

git push -f new master

git pushやgit pullの時にもしかしたら無意識につけているかもしれない、originってのはリモートリポジトリの指定なんですね。
なので、追加したリポジトリのキーワードであるnewを指定してあげれば、対応するurlにpushが出来るという寸法です。

以上でコミット丸ごと移行完了!簡単ですね。

36
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
42