【Github】Github里处理别人向你提交的pull requests

  一般都是我folk别人,所以现在别人folk我之后,并向我提交了pull request,有点不知所措,所以小小研究了下。
  比如现在mygoare fork了我的项目,修改后提交了pull request。我可以在github上看到他的pull request,GitHub如果检测到Pull Request中包含的提交可以直接合并,会显示自动合并的提示信息。点击“Confirm Merge”按钮即完成Pull Request中所含提交的自动合并。自动合并完成后,自动关闭Pull Request。
  实际上在很多情况下,Pull Request所含提交有可能造成合并冲突,那样的话GitHub不再、也不能提供自动合并功能,就必须采用手工合并的方式。
 
创建分支
$ git checkout -b mygoare-master master
 
现在有个mygoare-master 分支,并且现在在这个分支上
 
从mygoare的远端拉下来,有冲突,无法自动合并,须手动合并
$ git pull git://github.com/mygoare/lehuo.git master
 
查看状态(现在所在分支,两个版本冲突的文件)红色的为有冲突的文件
$ git status
 
可以查看冲突之处
$ git diff
 
用编辑器打开相应文件修改
例如homepage.html
<<<<<<< HEAD
我的代码(多一个box-shadow)
=======
mygoare的代码
>>>>>>> b8f7a4ef57ef38eefb24ff987a8c2e51a1a30b9e
 

选择其一保留,得如下
 
 
改完所有冲突后,就没有红色冲突了
$ git add -A
$ git status
 
提交到本地
$ git commit -m "merge mygoare's code"
 
因为现在在mygoare-master分支上,需要切换到我的master
$ git checkout master
 
合并mygoare-master到我的master上
$ git merge mygoare-master
 
提交到远端
$ git push
 
提交成功
 
github的pull requests自动变为0
 
 
 /*********************************************************/
补充:
查看分支,带星绿色的是现在所处的分支
$ git branch
 
删除分支mygoare,这个是之前测试用的
$ git branch -D mygoare
 

添加远端地址,远端名任意起
$ git remote add mygoare https://github.com/mygoare/lehuo.git
 
查看远端
$ git remote -v
 
获取mygoare的内容
$ git fetch mygoare
 
合并
$ git merge mygoare/master
 
查看提交说明,看到此次合并没有产生不必要的合并提交。
$ git log --graph -2
 

≡≡≡≡≡≡≡≡≡≡★ From Laker's blog ★≡≡≡≡≡≡≡≡≡≡

¤ ╭⌒╮☀Coding and changing~☀ ╭╭ ⌒╮

✪Fighting and insisting~✪

posted @ 2013-05-14 13:45  youngLaker  阅读(5681)  评论(1编辑  收藏  举报