Githubで誰かのリポジトリをforkしたらどうするかのメモ
最近rhaco2で遊ぶ時間がちょっと出来つつあるので、ドキュメントを書ける状態にはしておこうというのが、Github登録の理由だったりします。
なので、まずはrhaco2-docをforkしました。
- fork元
- GitHub - riaf/rhaco2-doc: TODO: rhaco2 の解説的なものをちまちまと書く
- forkした自分の
- http://github.com/kanonji/rhaco2-doc
で、どうやって自分の開発環境にローカルリポジトリ作るんだろうという事でちょっとだけ悩みました。
ローカルリポジトリを作る
この様に、自分のリポジトリには「Your Clone URL」と「Public Clone URL」があります。
他の人のリポジトリを見ると「Clone URL」だけしかなく、これは「Public Clone URL」と同等です。
※ユーザー名とかリポジトリ名とか、適当に読み替えてください。
- Public Clone URL
- git://github.com/kanonji/rhaco2-doc.git
- Your Clone URL
- git@github.com:kanonji/rhaco2-doc.git
git:// なのか git@ なのかの違いがあります。
git clone git@github.com:kanonji/rhaco2-doc.git
git clone でローカルリポジトリが作れます。
「Your Clone URL」の場合は、sshを介するため予めGithubに登録した公開鍵と合う秘密鍵が必要です。
「Your Clone URL」からcloneした場合は git push ができ、「Public Clone URL」からの場合は git push は出来ません。
他人のリポジトリなので当然ですが。
ローカルリポジトリで開発を進めて、公開してもいい状態になったら git push します。
forkして出来た自分の公開リポジトリに反映されます。
fork元に取り込んで欲しいものが出来たら、ここらを参考に pull request を出す。
http://github.com/guides/pull-requests
実際に git clone git@〜〜 してみた
$ git clone git@github.com:kanonji/rhaco2-doc.git Initialized empty Git repository in /Users/kanonji/Dev/git/rhaco2-doc/.git/ #秘密鍵にパスフレーズがある場合、この次で入力。 remote: Counting objects: 30, done. remote: Compressing objects: 100% (21/21), done. remote: Total 30 (delta 7), reused 30 (delta 7) Receiving objects: 100% (30/30), 5.09 KiB, done. Resolving deltas: 100% (7/7), done. $ cd rhaco2-doc/ #Github上のリポジトリ名でディレクトリが作られます。 $ git config -l core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true core.ignorecase=true remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* remote.origin.url=git@github.com:kanonji/rhaco2-doc.git #originという名前で、Github上のリポジトリがリモートブランチとして登録されています。 branch.master.remote=origin branch.master.merge=refs/heads/master
forkは後にしてまず開発をする方法もある
github で人のコードをいじる「前」にforkする必要はない - Bulknews::Subtech - subtech
「Clone URL」から git clone をしてローカルリポジトリを作り、元にマージして欲しくなってからforkする方法のようです。
forkした自分のリポジトリにpushするために git remote add myfork git@〜〜 とかやってから git push myfork master といった感じでやるみたい。
その他の参考
- forkしてたけど、その後fork元のコミット権を貰った場合
- githubでforkしたリポジトリから本家にpush - はこべにっき ♨
- pull requestを貰った場合
- githubでpull requestもらったのでmergeしてみる - 狐の王国