前言
最近有个项目,我负责用Vue写前端,代码更新后需要上传到gitlab。原来一直用gitee的我属实蒙圈,在这里记录一下。此过程使用git bash命令
一、前提
因为master默认仓库有项目文件了,所以新建分支仓库时,里面也是有文件的。而我更新的代码比较多,害怕合并发生冲突,(其实是上传之后发现冲突了才有这个打算的QAQ)就打算清空分支再上传文件,所以步骤如下:
1.新建空文件夹并连接本地仓库到远程仓库
2.pull或者clone远程仓库到文件夹
3.本地文件夹中删除拉取的所有文件
4.push该文件夹到远程仓库
5.复制需要更新的文件到此文件夹中并push到远程仓库
二、详解
1.新建分支和SSH公钥生成
首先注册gitlab,这个就不细说了,懂得都懂。
选择对应的项目,点击加号,选择新建分支(已有分支可以略过),我这里命名为dev
在本地新建一个空文件夹,我命名为dev。选中文件夹右键单击选中git bash
配置用户名和邮箱
输入git config --global user.name '你的名字'
回车,配置用户名
再输入git config --global user.email '你的邮箱'
回车,配置邮箱
生成密钥 ,输入
ssh-keygen -t rsa -C '你的邮箱'
,然后一直回车(判断y/n,输入y;密码可以不设置)
在密钥生成后根据给出的路径找到 .ssh 文件夹,一般为以下路径
打开并找到id_rsa.pub 文件,记事本打开全选复制
其次进入gitlab主页,点击头像》设置》左边SSH密钥
粘贴复制过来的内容并点击增加
2.创建本地分支、连接远程分支仓库并拉取项目
回到 git bash ,输入git init
初始化本地仓库,可以看见空文件夹生成了一个 .git文件夹,没有看到的话可以点击 文件夹上方 查看》勾选隐藏项目
输入git branch
查看是否有master仓库,如果没出现master,则在dev空文件夹中新建一个文件,我这里新建一个t.txt文件
输入git add t.txt
上传文件,
再输入git commit -m "对操作的解释说明(这里随便)"
此时,再执行git branch
,就可以看到有master了
创建本地分支dev,输入git branch dev
,此时dev已被创建,
输入git checkout dev
指定指向dev
连接远程仓库,输入git remote add origin 你要拉取项目的http/SSH连接
拉取远程分支项目到本地仓库,输入git pull origin dev --allow-unrelated-histories
3.清空远程仓库分支,并上传本地项目到远程仓库分支
上一步我们已经拉取项目到本地了,可以看到本地仓库,即文件夹dev下已经有项目文件了,接下来 删除除了 .git文件的所有文件
在bash中输入git status
,查看本地仓库文件状态,可以看到一大串del
输入git commit -m "删除"
输入git push -u origin dev
,上传操作至远程仓库,此时可以看到远程仓库分支dev下已被清空
把需要上传的文件复制粘贴至本地dev文件夹下,再重复刚才的命令
git add .
git commit -m "更新"
git push -u origin dev
至此远程仓库被清空且上传本地项目成功。撒花撒花,踩了很多坑,太不容易了。