Gitでoriginの参照先レポジトリを後から変更する方法

Github上のあるオープンソースプロジェクトをcloneして、その(手元のローカルレポジトリ)にそのままコミットしてしまったとします。
するとそのままでは当然git pushできないので、Github上でforkして自分のレポジトリにpushしたいわけですが、git push origin で自分のレポジトリにpushしたいときにはどうすればよいか?という話。

そういう場合は、.git/configを直接編集してURLを書き換えればOKです。

例として、https://github.com/memcached/memcachedをcloneするとします。
# 普通にclone
git clone git@github.com:memcached/memcached.git

# ソースコードをごにょごにょいじって
nano README

# addしてcommit
git add README
git commit -m "編集した"

# だけどこのままではpushできない!
git push origin master

# ここでブラウザからforkボタンを押す。
# git@github.com:DQNEO/memcached.git が作られる

# .git/configを編集する
nano .git/config
エディタでoriginのURLを書き換えます。
[remote "origin"]
-       url = git@github.com:memcached/memcached.git
+       url = git@github.com:DQNEO/memcached.git
        fetch = +refs/heads/*:refs/remotes/origin/*
こうすれば、originが自分のレポジトリを指すようになるので、git push originできるようになります。

カテゴリ: