本文以vue-cli搭建的项目上传github为例,演示如何利用vue-cli创建vue项目后,再创建github仓库,然后将vue项目与远程的github建立建立,最终本地项目文件可以通过git命令随时上传至github。gitee类似。
1.创建一个vue3项目
项目创建完毕,进入文件夹,看到此时已经有了git文件夹,我们需要新增远程git地址
创建一个github仓库
将默认分支从main改名为mater(某年某月以后github将默认分支名称master改为了main,但是我还习惯用master)
使用命令git remote add origin url 将本地项目与远程仓库建立联系
git remote add origin xxxurl
然后使用命令:git remote -v 查看当前项目与哪一个关联着,因为我们上面建立了联系,所以此时可以看到远程仓库地址
使用命令git fetch urlxxx 将远程仓库同步到本地仓库(以后每次提交前都要拉取一下,这是良好的习惯)
(可选1)此时远程仓库可能README.md文件,如果此时本地仓库没有,或者内容不一样,就会造成提交不了。使用命令git pull --rebase origin master,使得远程的文件和本地文件进行合并。提示:如果该命令提示有冲突,则要解决冲突。解决完冲突如果还提示:fatal: refusing to merge unrelated histories
。则可以强制合并完本地冲突git pull origin master --allow-unrelated-histories
(可选2)如果远程有README.md,本地也有README.md且两个文件里的不一样,此时使用命令git pull origin master:master,就会出现如下报错:
! [rejected] master -> master (non-fast-forward)
这是因为git里面就是提交历史出现分叉,主线不再是一条直线,而是在前端出现了分叉,git不知道该如何前进,所以报错了,让你来觉得走哪条路!简言之就是:别人上传到远程仓库后,你没有及时的同步(、拉取)到本地,但是你同时又添加了一些内容(提交),以致于你在提交时,它会检测到你之前从远程仓库拉取的时候的仓库状态和现在的不一样。或者说仓库的内容和本地的内容不一致,于是,它为了安全起见拒绝了你的提交(然后就报了这个错误)。
解决方案:
在这里由于我们只是本地和远程的README.md冲突,其他文件没有冲突,我可以选择抛弃掉远程仓库里的REAMD.md文件,只保留本地的read.md文件。
$ git push -f 或者 $ git push --force
丢弃之前的历史,强推——谨慎使用强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容
官方文档提示:This flag disables these checks, and can cause the remote repository to lose commits; use it with care.(即:此标志禁用这些检查,并可能导致远程存储库丢失提交;小心使用。)
不仅在此处,在平时使用时,也要非常注意,除非你真的是想覆盖远程仓库(你真的知道自己在干嘛!),不然最好不要强制执行。
然后刷新github页面就可以看到本地和远程已经同步了
如果没有以上两个错误,则正常推送即可:
再使用命令:git push -u origin master 把它推送到远程上,也就是将本地项目同步到远程仓库。
然后刷新github页面就可以看到本地和远程已经同步了