前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git上传更新项目-错误总结

git上传更新项目-错误总结

作者头像
benny
发布2018-03-06 18:40:14
1.3K0
发布2018-03-06 18:40:14
举报

前些天做完项目一部分内容的时候,想git上传代码上去远程仓库里,却出现了不少git的错误提示信息。在这里总结一下吧:

一、正确的git上传更新项目步骤为:

1、git add . 添加

2、git commit 提交

3、git pull 同步

4、git push 上传更新

那么在这个正常的步骤中,一般人会出现的问题有:

二、 failed to push some refs to 'git@github.com:你的远程库名.git'

这个是你git push上传更新代码的常见错误。我个人的理解是,远程仓库中的项目代码跟你本地仓库中的代码为进行版本对比,也就是说,git他不知道你修改了哪部分代码,在上传的时候,就容易出现在“同时修改同一行代码”的情况发生;当git对比两个版本后,他知道了你修改了哪部分,在根据修改的部分进行上传更新;其他人再次访问远程仓库的时候,也就可以下载当前最近的版本和了解修改的代码,以至于不会出现同一时间不同的人员上传更新代码。

解决办法是:

git remote add origin "仓库地址"

gti pull origin master --allow-unrelated-histories

三、fatal: refusing to merge unrelated histories

中文翻译是:“致命的:拒绝合并无关的历史”,因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在git pull,这句代码是在git 2.9.2版本发生的,最新的版本需要添加--allow-unrelated-histories

解决办法是:

改“git pull origin master”为:“gti pull origin master --allow-unrelated-histories”

四:为什么要先commit在pull,而不能先pull在commit上去呢?

这个先 commit 再 pull 再 push 的情况就是为了应对多人合并开发的情况,

  1. commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;
  2. pull是为了本地 commit 和远程commit 的对比记录,git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先把和你冲突的那个人拉过来问问保留谁的代码,然后在 git add && git commit && git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉
  3. 出现代码覆盖或者丢失的情况:比如A B两人的代码pull 时候的版本都是1,A在本地提交了2,3并且推送到远程了,B 进行修改的时候没有commit 操作,他先自己写了东西,然后 git pull 这个时候 B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit && git push 那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的碎碎念 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档