一般都是我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
![](https://i-blog.csdnimg.cn/blog_migrate/25b8d094f68eb92c428b1ccf587776ad.png)
现在有个mygoare-master 分支,并且现在在这个分支上
![](https://i-blog.csdnimg.cn/blog_migrate/3301435363d8e8a8edfdf39d69375d99.png)
从mygoare的远端拉下来,有冲突,无法自动合并,须手动合并
$ git pull git://github.com/mygoare/lehuo.git master
![](https://i-blog.csdnimg.cn/blog_migrate/c4d3f89aa9b7e3087387d016abb08c64.png)
查看状态(现在所在分支,两个版本冲突的文件)红色的为有冲突的文件
$ git status
![](https://i-blog.csdnimg.cn/blog_migrate/68ca105fcda41561d832a2d431902922.png)
可以查看冲突之处
$ git diff
![](https://i-blog.csdnimg.cn/blog_migrate/0f9bc6e2e8c063909e52d7ae3c0be232.png)
用编辑器打开相应文件修改
例如homepage.html
<<<<<<< HEAD
我的代码(多一个box-shadow)
=======
mygoare的代码
>>>>>>> b8f7a4ef57ef38eefb24ff987a8c2e51a1a30b9e
![](https://i-blog.csdnimg.cn/blog_migrate/4fd6684f3c1d7417581b2098f392da15.png)
选择其一保留,得如下
![](https://i-blog.csdnimg.cn/blog_migrate/88e402d0b09b18cceb12cbfba907ac95.png)
改完所有冲突后,就没有红色冲突了
$ git add -A
$ git status
![](https://i-blog.csdnimg.cn/blog_migrate/c0c365f170022196c46bffaaeb1f48c8.png)
提交到本地
$ git commit -m "merge mygoare's code"
![](https://i-blog.csdnimg.cn/blog_migrate/402edef47d474f610f554a427171f5bc.png)
因为现在在mygoare-master分支上,需要切换到我的master
$ git checkout master
![](https://i-blog.csdnimg.cn/blog_migrate/37f46032fa4e795ef2f1422c2261f4a6.png)
合并mygoare-master到我的master上
$ git merge mygoare-master
![](https://i-blog.csdnimg.cn/blog_migrate/24cb93d27787507bd4992d6e5d9de552.png)
提交到远端
$ git push
![](https://i-blog.csdnimg.cn/blog_migrate/57b9e2eccf13cd0a70f5ce6e261945b2.png)
提交成功
![](https://i-blog.csdnimg.cn/blog_migrate/63214800444729e5bbf6b772055794ac.png)
github的pull requests自动变为0
![](https://i-blog.csdnimg.cn/blog_migrate/41d18ead5d7d64851866b8b3cc1a5ce1.png)
/*********************************************************/
补充:
查看分支,带星绿色的是现在所处的分支
$ git branch
![](https://i-blog.csdnimg.cn/blog_migrate/0f155732ada51661b12370b0ab5f2856.png)
删除分支mygoare,这个是之前测试用的
$ git branch -D mygoare
![](https://i-blog.csdnimg.cn/blog_migrate/3b711c23949e5c1ed978945f9578393a.png)
添加远端地址,远端名任意起
$ git remote add mygoare https://github.com/mygoare/lehuo.git
![](https://i-blog.csdnimg.cn/blog_migrate/bc672cadc3cdf9c0a8c22d6941c41e5f.png)
查看远端
$ git remote -v
![](https://i-blog.csdnimg.cn/blog_migrate/7241eca2ed5e0a28d6d3b28d72272e4e.png)
获取mygoare的内容
$ git fetch mygoare
![](https://i-blog.csdnimg.cn/blog_migrate/f7bd2a0127c4d8ff6918ceef06ed498e.png)
合并
$ git merge mygoare/master
![](https://i-blog.csdnimg.cn/blog_migrate/863a996f8a2f24e17285fb6c678241a5.png)
查看提交说明,看到此次合并没有产生不必要的合并提交。
$ git log --graph -2
![](https://i-blog.csdnimg.cn/blog_migrate/ced8ba7550759930774ce646d7214e02.png)
≡≡≡≡≡≡≡≡≡≡★ From Laker's blog ★≡≡≡≡≡≡≡≡≡≡
¤ ╭⌒╮☀Coding and changing~☀ ╭╭ ⌒╮
✪Fighting and insisting~✪