博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Ting's笔记Day3]解决Git常见错误non-fast-forward问题
阅读量:7199 次
发布时间:2019-06-29

本文共 1924 字,大约阅读时间需要 6 分钟。

写文章最难的部分,是找题材!

 

所以最近每次遇到bug或错误都挺兴奋开心()的,因为又可以写笔记了

也可以记录新手学习之路上遇到的常见问题,提供其他新手参考。

 

最近学Udemy平台Ruby学习在线课程,我在本机练习做了一个Ruby on Rails项目(名称定为:yelpdemo),

 

 

我先用subl .叫出Sublime编写项目内的网页,做一点修改后,

再用Terminal按照我自己Day2笔记所说的Git步骤试着同步此项目到Github的同名repository储存库。

 

前情提要:我再Github的repo是上周设定好的,所以自己有点忘记当初发生什么事~导致接下来的问题

Step1.首先git status

看看目前working directory中所有档案的情形,红色代表这些档案需要被追踪:

 

 

Step2.git add .

把以上所有档案交给Git,再输入一次git status,绿色代表已更改为被追踪:

 

 

Step3 git commit

git commit -m“first commit”,备注-m里写上“执行第一个提交指令commit”,将staged档案储存到储存库:

 

然后再输入一次git status:

 

好了,到这边都挺顺的~

 

Step4.设定好要加入的路径git remote add origin

git remote add origin https://github.com/(你的帐号)/(你的项目名称):

设定远端origin的repository路径,然后再推送:

git push -u origin master

-u是update的意思,用了参数-u之后,未来就能直接使用不带参数的git pull从以前push过的分支来pull。

 

如果你没有先git remote add origin就直接git push

就会像我一开始一样,出现了'找不到储存库'的问题喔!

 

Step5.git push -u origin master

[灯等!]更新被拒绝了,因为上周我在Remote建的的repo里面,有些更动过的档案版本,本地端并没有:

 

[解决]提示告诉我可以先用git pull,

 

然后再git push一次:

 

 

重点在于最后一行:git push预设会推送「本地分支」到相同文件名的「远端分支」

 

When push.default is set to 'matching',git will push local branchesto the remote branches that already exist with the same name.

[灯等!]问题再度出现:The current branch master has no upstream branch,表示当前分支主机没有上游分支:

 

[解决]按照提示,依样画葫芦地git push --set-upstream origin master

 

 

[灯等!]新的问题产生,提示说我的master是non-fast forward

 

 

这个non-fast forward的意思是本机commit和远端的不相同,本地和远端的Repository发生文件冲突问题(线图有分岔)。

 

由于上周在远端创建的文件夹内容文件发生改变,因此不允许我把本地的文件覆盖上去。

 

关于合并local端和remote端,近一步了解可以看git官网,或是连猴子都能懂的Git入门指南解释

 

在push之前,我需要

git fetch

git merge

将远端的改变用merge合并到本地上。

 

或是我可以用git push -f强制覆盖本地文件替代git储存库的内容。

 

Google关键字在stackoverflow找到的解法是

git push -f origin <branch>。

 

-f代表force:强制推送。如果不想把远端分支的更动合并(merge)到本地分支,则可以使用这个指令。但要小心使用。

 

[解决]

 

回到github站上检查,终于同步完成():

 

 

===

后记:

这是写给自己提升记忆的笔记。相信之后如果在本机再建立其他新项目、远端建立储存库并使用gite功能,可能还是会遇到以上类似的问题,身为自学git新新手,我没有直接发问求救,而是靠google增加观念、进而找到解答,因此还蛮开心的!

 

看了数据,有些工程师的建议是少用git pull,以git fetch和git merge代替。也许以后实作之后有类似的经验和心得,再写点相关的文章。

转载于:https://www.cnblogs.com/lannyQ-Q/p/10232828.html

你可能感兴趣的文章
Java垃圾回收机制
查看>>
阿里云海外服务器常见选择问题
查看>>
Zabbix监控平台的搭建
查看>>
Paris带你 分析反反爬虫 用不完的遍布世界的毫秒级代理IP
查看>>
优秀工程师必备的三大思维,你拥有哪些?
查看>>
gitea漏洞利用
查看>>
Appium 基础架构分析
查看>>
event.target 和 event.currentTarget
查看>>
制作简单的 2.4G MINI便携频谱仪
查看>>
AdaCore 加入 RISC-V 基金会,带来 C 与 Ada 编译支持
查看>>
Quanergy创始人兼CEO Louay Eldada:将在中国建立固态激光雷达超大型生产设施 | 2018全球智能驾驶峰会...
查看>>
AppManager封装
查看>>
centos手动编译安装nginx
查看>>
读书笔记 effective c++ Item 14 对资源管理类的拷贝行为要谨慎
查看>>
AMD Zen架构国内授权细则曝光,我方不能插手内核
查看>>
深入解析阿里 PouchContainer 如何实现容器原地升级
查看>>
Python中机器学习的特征选择工具
查看>>
day25_Struts2学习笔记_02
查看>>
dreamweaver 快捷键(2)
查看>>
Keepalived+MySQL主从切换演示【书里讲解】
查看>>