20200618 之前在 gitee 上建立一个仓库,当时直接建立了 2 个分支: master 和 develop ,之后,程序员一直在 develop 分支上修改代码,
因为 git 不熟练,项目代码也不熟悉,一直没有进行分支合并
中途曾经尝试 merge ,但是,每次看到一大堆 conflict ,就害怕而放弃
今天终于决定完整的测试一次,已然不是在实际的项目仓库上,而是导入到另一个仓库进行测试
以下记录一下完整过程,以便下次实际操作室参照
任务: 将 develop 分支合并到 master 分支
1、 命令行操作
打开 terminal ,并进入到本地仓库所在目录
之前已经配置并 clone 好远程仓库
$ git clone https://gitee.com/gold-spider/atc_frontend5
查看远程仓库信息
$ git remote -v
origin https://gitee.com/gold-spider/atc_frontend5 (fetch)
origin https://gitee.com/gold-spider/atc_frontend5 (push)查看分支
$ git branchdevelop * master *
可以看到,当前分支是 master
切换并 clone 分支 develop
$ git checkout develop
Branch ‘develop’ set up to track remote branch ‘develop’ from ‘origin’.
Switched to a new branch ‘develop’$ git clone -b develop https://gitee.com/gold-spider/atc_frontend5
切换到 master 分支,准备合并
$ git checkout master
Switched to branch ‘master’
Your branch is up to date with ‘origin/master’.将 develop 分支上的代码合并到当前 master 分支
git merge develop
返回信息如下:warning: Cannot merge binary files: src/assets/xas_chain_assets.png (HEAD vs. develop)
warning: Cannot merge binary files: src/assets/xas.png (HEAD vs. develop)…
CONFLICT (add/add): Merge conflict in src/utils/util.js
Auto-merging src/utils/util.js
CONFLICT (add/add): Merge conflict in src/utils/constants.js
…
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
CONFLICT (add/add): Merge conflict in .eslintrc.js
Auto-merging .eslintrc.js
Automatic merge failed; fix conflicts and then commit the result.
有大量的冲突!
2、打开 VSCode 处理冲突
在 VSCode 上打开以上仓库目录
可以看到,我们的 atc_frontend5 chanshengle 有 65 个合并变动需要处理一次点击打开下方变动过的文件
在代码区,有冲突的地方都明显的标示出来
并且,给出来冲突解决选项
Accept Current Change
Accept Coming Change
Accept Both Changes
Compare Changes
Start Live Share Session我们这个仓库参与人员不多,按照实际发展过程,我们应该接受 develop 分支上程序员带来的所有变化!也就是:
Accept Coming Change依次重复上一步,修改所有的变动
完成后,添加 ( + ),然后提交( Commit )试试
弹出来提示:远程查看一下是否提交上去
测试、改错、测试
一次很难处理干净那么多变动,所以,需要进行测试之后提交
上图实际上是经过以下几轮测试之后的 push 结果这是一个 quasar 框架下开发的一个 Vue 单页面程序,所以测试过程如下:(下辖操作直接在 VSCode 里面的 Terminal 完成)
$ npm i
返回错误:npm ERR! file /Users/dhbm/Desktop/ATC/atc_frontend5/package.json npm ERR! code EJSONPARSE npm ERR! Merge conflict detected in your package.json. npm ERR! npm ERR! Please resolve the package.json conflict and retry the command: npm ERR! npm ERR! $ /usr/local/bin/node /usr/local/bin/npm i npm ERR! A complete log of this run can be found in: npm ERR! /Users/dhbm/.npm/_logs/2020-06-18T09_02_33_626Z-debug.log
原来,刚才漏掉了 package.json,如下图,右边还标示着: 9+,M ,打开文件也确实看到有 Confilct 没有处理
运行一次 dev
quasar dev
报错如下:...... error in ./src/i18n/de/index.js Syntax Error: SyntaxError: /Users/dhbm/Desktop/ATC/atc_frontend5/src/i18n/de/index.js: Unexpected token (307:0)
打开这个 index.js ,改掉漏掉的 Changes
最终, quasar dev 正确!
再次 + 并且 ✅ ,然后 push 上去! ok !