赞
踩
正常步骤:
在远程创建一个仓库,在本地建立一个仓库,在将代码add之后提交到本地仓库暂存区,将暂存区中的代码推送到远程仓库
对于初学者在IDEA中操作git经常遇到如下问题:
IDEA比较智能,当你设置好git版本并集成之后点击菜单栏的git会让你选择文件夹创建仓库,一般选择你的IDEA当前项目工作文件夹下,当你写完代码之后提交,你会先add再commit,然后push到指定URL的远程仓库中。这个流程其实是不规范的,一般会遇到以下问题:
push后error,显示:
Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
其实原因很简单,就是本地库与远程库版本不同,简单理解就是两个库没有进行同步。这么一看也确实,我们也只是在IDEA里指定了个文件夹,新建了一个本地库,写完后就直接push到远程库,在push之前两个库八竿子都打不着凭什么你能push过去,那肯定是要先“对一下暗号啊!”怎么对?pull一下就可以!
就像这样:git pull origin master --allow-unrelated-histories
一定要带上后面的指令,别问为什么!
–allow-unrelated-histories 其实它的含义就是允许合并不相关的历史记录(这不就正好切合前面所说的版本不同步的问题)
为了方便大家理解,我化身小白鼠建立了一个新库试验了一下:
直接建立本地库,未pull就push代码:
建立本地库后,pull远程仓库
可见同步版本非常之重要!
当然还有一种方法,那就是强制push:
之前我在新建了一个远程库之后在Gitee中修改了README文件,正常使用了gitee创建仓库会给你一个选项就是初始化模板,这和本地仓库git init很显然是不一样的,导致远程库与本地库版本不一致,归根结底也是push之前没有pull,不过当时我采用的办法不是和上述一样,而是使用了强制push,即
git push -u origin master -f
这样做非常不可取,会导致远程库被强制push的本地库覆盖,创建后在gitee中修改的配置文件自然也就不见了,所以不建议使用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。