初めてpull requestを受け取った
久々にgithubを見たら、pull requestが来ていました。userstampのfork元が修正され、それに伴ってfork先にpull requestが発行されたようです。メール見てませんでした。
他の人の変更を取り込んだことが無かったので、Guides: Pull Requestsを見ながら差分をmergeしてみます。
まず、今回の変更が行われたリモートリポジトリを登録しようとしたところ、
$ git remote add -f korobkov git://github.com/korobkov/userstamp.git fatal: Not a git repository
と怒られてしまいました。以前作業したgitフォルダとは別のフォルダで作業しようとした為、.gitフォルダが無くてNGのようです。git initしないといけないらしい。
$ git init Initialized empty Git repository in /home/masayuki/work/rails/tmp/test/.git/ $ ls -la 合計 12 drwxr-xr-x 3 masayuki dev 4096 2009-05-30 16:55 . drwxr-xr-x 4 masayuki dev 4096 2009-05-30 16:55 .. drwxr-xr-x 7 masayuki dev 4096 2009-05-30 16:55 .git
.gitフォルダができました。remote addはうまくいったので、ファイルを取り込む為のbranchを作成します。
$ git checkout -b korobkov/master fatal: ou are on a branch yet to be born
また怒られてしまいました。READMEというファイルを作成しcommitした後、再度試してみると、
$ git checkout -b korobkov/master Switched to a new branch "korobkov/master"
うまくいきました。次に、先ほどのbranchにファイルを取り込もうとしたところ、
git pull korobkov master fatal: empty ident not allowed
またまた怒られてしまいました。configに、user.nameの指定が無かった(user.namaになっていた)為でした。
$ git config --global user.name "masayuki038" $ git pull korobkov master Automatic merge failed; fix conflicts and then commit the result.
取り込めたものの、READMEファイルがconflictしました。修正して、
$ git commit -a -m"update merge"
でコミット。
次に、以前forkして変更を加えたremoteリポジトリを登録します。この際、remoteリポジトリの場所にPublic Clone Urlを指定してしまうと、pushする際に、
$ git push origin master You can't push to git://github.com/user/repo.git
とエラーがでます。その為、remote addにはYour Clone Urlを指定します。
$ git remote add origin git@github.com:masayuki038/userstamp.git
branchをmasterに切り替えます。
$ git branch * korobkov/master master $git checkout master
あとはmasterにpullし、branchにpullしたファイルをmergeします。
$ git pull origin master $ git merge korobkov/master warning: refname 'korobkov/master' is ambiguous. warning: refname 'korobkov/master' is ambiguous. Auto-merged README Merge made by recursive. README | 8 ++-- lib/stampable.rb | 54 ++++++++++++++++-------------- test/compatibility_stamping_test.rb | 2 +- test/helpers/functional_test_helper.rb | 10 +++-- test/helpers/unit_test_helper.rb | 58 ++++++++++++++++--------------- test/stamping_test.rb | 2 +- test/userstamp_controller_test.rb | 24 +++++++------ 7 files changed, 84 insertions(+), 74 deletions(-)
自動的にcommitされるらしく、リモートリポジトリにpushして完了です。
$ git push origin master Counting objects: 50, done. Compressing objects: 100% (22/22), done. Writing objects: 100% (38/38), 7.78 KiB, done. Total 38 (delta 21), reused 25 (delta 14) To git@github.com:masayuki038/userstamp.git af36e03..7df7841 master -> master