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

前些天做完项目一部分内容的时候,想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,不然真的会覆盖代码的

原文发布于微信公众号 - 程序员的碎碎念(gh_53e607dd4782)

原文发表时间:2017-10-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从零开始学自动化测试

python+requests接口自动化项目完整框架设计

前言 有很多小伙伴吵着要完整的项目源码,完整的项目属于公司内部的代码,这个是没法分享的,违法职业道德了,就算别人分享了,也只适用于本公司内部的业务。 所以用例的...

2985
来自专栏有刻

dotnetcore 自动迁移工具

3278
来自专栏linux运维学习

linux学习第十二篇:usermod命令,用户密码管理,mkpasswd命令

usermod命令 usermod:更改用户属性的命令 用法: usermod -u 111 user1   //修改用户user1的uid为111 userm...

1916
来自专栏向治洪

openfire环境搭建

1、下载源代码:http://www.igniterealtime.org/downloads/source.jsp ? 2、把源代码解压出的openfire_...

1715
来自专栏前端知识分享

第160天:Http协议的详细总结

超文本传输协议(HyperText Transfer Protocol),缩写HTTP。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform...

462
来自专栏拂晓风起

让tomcat跑起php(caucho quercus简单用法,tomcat运行php)

783
来自专栏TungHsu

Windows怎么设置开机自动进行宽带连接?

这个时候如果没有输错的话就可以双击这个文件进行宽带连接了。下面我们进行设置开机自启

1183
来自专栏古时的风筝

Django集成百度富文本编辑器uEditor

UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。 首先...

2789
来自专栏小文博客

自动批量取消关注微信公众号——按键精灵

1114
来自专栏happyJared

IDEA快捷键拆解系列(十五):经验篇

  本文整理了一些博主本人在学习工作中比较常用到的快捷键,有需要的可以参考一下,也欢迎留言补充。

501

扫描关注云+社区