让你的 Laravel 应用与官方保持同步

2015/06/09

解决什么问题?

我们在用着 4.2,过了一段时间作者发布了 5.0,项目可能还没开发完,然后你又像我一样是一个不升级不舒服斯基,那么用升到最新版是你接下来要忙碌的事情。因为你不知道 4.2 ~ 5.0 变化了多少。所以你不可能手动一个个加上或者删除、修改。有的人可能是备份,然后用新版建立一个项目:composer create-project laravel/laravel ,然后把原来自己的代码考过来,然而,变化不一定只是文件新增或者删除啊,可能是原来文件里改了一行,你却没法知道。所以这就头疼了。那么下面我就分享一个超简单的办法来解决这个问题:

首先我们使用的是 git,如果你不熟悉它的话,起码你这时候应该去补补基本命令了。

这里假设我们的项目叫做 blog, 然后我们第一步要做的事情是添加官方git源:

cd blog # 切到项目根目录
git remote add laravel https://github.com/laravel/laravel # 添加一个源

这里解释一下:

因为我们的项目基本都已经有一个源origin,就是我们项目用于上传到公司 gitlab 或者 bitbucket 这样的网站用于项目代码管理的地方,所以我们不能破坏它。然后我们添加了一个叫做 laravel,这样就会有两个源了,意味着我们就可以从两个源同步代码。

拉取 Larvel 的新版代码

拉取指定的 Laravel 分支

注意:在我们拉取 Laravel 源的代码前,请确认你的修改都已经保存并 commit

shell git pull laravel master

这里我们从 laravel 的源拉取 master 分支,当然你也可以拉取其它分支的代码。

合并冲突

拉取完代码,这时候通常是会冲突的,因为你的代码与官方的代码不一样了,冲突部分就是不相同的地方,那么你根据合并结果找到CONFLICT (content): Merge conflict in xxxx.xxx 部分的文件打开,找到冲突的地方合并就好了。

解决完冲突你的代码结构就与官方一致了,而且这种合并方式不会让你落下任何一个不同的地方。

当然以上的方法适用于任何 git 管理的项目。比如工作中,你 fork 了主项目,要经常同步主项目的更新时就用这个方法最简单了。