公司一直用的Git,为了尽快熟悉Git的使用,我登录了自己的GitLab账号新建了一个项目,却发现本地的代码一直提交不上去,显示Push rejected的问题,原因是我没有将本地分支和远程分支建立关联,从网上找了好多方案才解决,特此记录下。

第一步:注册并登录账号,没啥说的

gitlab 允许其他人push gitlab不能push_右键


第二步:点击new project按钮

gitlab 允许其他人push gitlab不能push_GIt_02


第三步:填写项目名称并创建项目

gitlab 允许其他人push gitlab不能push_gitlab 允许其他人push_03


Project name:项目的名称。

Project description:项目的描述(可以不填)。

Visibility Level(项目可见级别):提供Private(私有的,只有你自己或者组内的成员能访问)/Internal(所有登录的用户)/Public(公开的,所有人都可以访问)三种选择,个人搭建项目建议private。第四步:创建密钥:在自己的user路径下进入.ssh文件夹(没有的话就手动创建),右键选中Git Bash Here

gitlab 允许其他人push gitlab不能push_GIt_04


并配置全局账户名和全局邮箱,比如:

git config --global user.name “testUser”
git config --global user.email “testUser@163.com”

gitlab 允许其他人push gitlab不能push_右键_05


第五步:生成公钥,一直按回车键就可以了

gitlab 允许其他人push gitlab不能push_gitlab 允许其他人push_06


此时你的.ssh文件下就会生成两个文件

gitlab 允许其他人push gitlab不能push_git_07


第六步:将id_rsa_publ里的内容复制出来并粘贴到SSH Keys里面,点击Add key就OK了。

gitlab 允许其他人push gitlab不能push_gitlab 允许其他人push_08


第七步:打开你的本地项目,添加Git仓库

gitlab 允许其他人push gitlab不能push_右键_09


第八步:右键add项目并且提交到本地仓库

gitlab 允许其他人push gitlab不能push_git_10


如果你现在直接push到远程仓库的话是会报错的

gitlab 允许其他人push gitlab不能push_GIt_11


此时你用git push -f命令就知道是本地分支与远程分支没关联起来的问题:

gitlab 允许其他人push gitlab不能push_远程分支_12


解决办法就是 : git push --set-upstream origin master。其中的origin是你在clone远程代码时,git为你创建的指向这个远程代码库的标签,它指向repository , master是你远程的branch。

gitlab 允许其他人push gitlab不能push_GIt_13


如果不清楚分支的话可以用:git branch -a 查看所有分支,远程分支是红色的部分,再将对应的master值替换掉就可以了(远程也是master分支,所以不做修改)

gitlab 允许其他人push gitlab不能push_右键_14


上面划线的部分是我关联分支时报的错误,查了一下是因为gitlab中的README.md文件不在本地代码目录中,解决办法: git pull --rebase origin master

gitlab 允许其他人push gitlab不能push_远程分支_15


再提交项目,大功告成。

gitlab 允许其他人push gitlab不能push_远程分支_16


码图不易~