本地项目代码上传到远端GitLab仓库

前言

情况一:项目在本地从零开发,未commit或者pull过任何Git版本,需要将自己本地的项目上传到GitLab新建的项目中。

情况二:项目是从远端clone到本地进行开发的,需要将该项目迁移到新建的GitLab项目中。

本文只针对第一种情况进行详细说明。

本文使用Git命令行操作。

步骤

一 、在GitLab上新建Git仓库。
GitLab新建项目

GitLab新建项目

点击创建完成之后,生成空的项目仓库,如下图:


GitLab新建项目

在界面的下部有命令行指令的说明:


命令行指令

至此,GitLab上的步骤告一段落。

二、建立本地Git仓库。

直接上代码:
1.初始化本地仓库。在本地项目根目录中打开Gti命令行,执行:

git init  //初始化本地仓库

2.将本地项目的所有文件添加到暂存区。小数点 “.” ,意为添加文件夹下的所有文件;也可以将 “.” 换成具体的文件名,如果想添加项目中的指定文件,那就把 “.” 改为指定文件名即可。

git add .   //将本地项目的所有文件添加到暂存区

3.将暂存区的文件提交到本地仓库,并添加说明信息:

git commit -m "说明信息"   

至此,本地项目提交到本地仓库完成。

三、将本地仓库代码推送到GitLab远端仓库。

1.首先,建立本地仓库和远端GitLab仓库的关联关系:

git remote add origin  https://gitlab*********************.git

在这一步时如果出现错误:fatal:remote origin already exists,先清除一下关联关系:

git remote rm origin

再重新关联:

git remote add origin  https://gitlab*********************.git

2.检查关联是否已建立且正确:

git remote -v

3.将代码由本地仓库上传到 GitLab 远端仓库,依次执行下列语句。
获取远程库与本地同步合并:

git pull --rebase origin master

如果远程库不为空必须做这一步,否则后面的提交会失败,不加这句可能报错,原因是 GitLab中的 README.md 文件不在本地仓库中,可以通过该命令进行代码合并。

把当前分支 master 推送到远程:

git push -u origin master

执行完之后如果无错误就上传成功了,需要提示的是这里的 master 是 GitLab默认的分支,如果你本地的当前分支不是 master,就用git checkout master命令切换到master分支,如果你想用本地当前分支上传代码,则把上面两条命令里的 master 切换成你的当前分支名即可。

如果推送不成功,先pull一下,如果报错fatal: refusing to merge unrelated histories,说明本地和远端的git库是两个 根本不相干的 git 库, 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并。解决方法:强制合并:

git pull origin master --allow-unrelated-histories

后面加上 --allow-unrelated-histories ,意思是把两段不相干的分支进行强行合并。
然后再将代码推送到远端。

至此,操作成功。