git提交代码的总体流程
git init #初始化该文件夹为git仓库
git add . #将本文件夹下的所有文件暂存
git commit -m "" #将代码更改保存到本地版本库中
git remote add origin https://github.com/xxx/xxx.git #将本地仓库与远程仓库关联
git push -u origin master #将本地代码推送到远程仓库
问题描述
1.本地分支与远程库分支不匹配
在vscode中初始化文件夹默认是保存在master分支的,而github默认是在main分支,如果直接进行推送会出现下列错误
fetal: src refspec master does not match any
- 解决方法:
git branch -l #列出目前所在分支
git checkout main #如果main分支存在就直接切换到main分支
git branch -m master main #将master分支重命名为main
再进行推送就成功了。
2.无法连接到服务器
再vscode推送代码时出现下面错误
fatal: unable to access 'https://github.com/xxx/xxx.git/': Failed to connect to 127.0.0.1 port 1080 after 2016 ms: Couldn't connect to server
- 是代理的问题
git config --global --get http.proxy #查看http协议代理
git config --global --get https.proxy #查看https协议代理
git config --global --unset http.proxy #取消代理
git config --global --unset https.proxy
git config --global http.proxy http://127.0.0.1:7890 #设置http协议代理
git config --global http.proxy socks5://127.0.0.1:7891 #设置socks5协议代理
其中127.0.0.1表示本地回环,然后在翻墙软件上查询相应的发送端口,比如我的http端口为7890,socks5端口为7891
windows系统可以直接搜索代理可以在设置中找到相应的代理端口。
linux系统可以输入
env|grep -I proxy
查看目前开启的代理服务器。
在修改之后发现出现了同样的问题,而且错误中显示的端口号依旧是1080,说明配置没有生效。
在文件中查找.gitconfig,可以得到所有的配置信息,可以看到多了下面的语句
[http "https://github.com"]
proxy = socks5://127.0.0.1:1080
将其改为对应的端口。
3.远程库拒绝推送
报错如下
! [rejected] main -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/xxx/xxx.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. If you want to integrate the remote changes,
hint: use 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
- 解决办法
是由于远程库中有本地库没有的东西,所以需要先拉取代码再推送
直接用git pull origin main
拉取代码,这句命令的意思是将远程库main
分支拉取到本地分支(origin
)中,但是会报错There is no tracking information for the current branch.Please specify which branch you want to merge with.
。因为本地库和远程库中的文件没有关联,所以需要添加说明git pull origin main --allow-unrelated-histories