GitLab 小白入手教程
这里不讲概念性的东西,在看这个之前请先移步到廖雪峰的官方网站选择git教程!下载并安装Git,然后点击Git Bash Here ,进行全局配置
1 git config --glogal user.name “–”;
2 git config --glogal user.email “—@–.com”;
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
注意:git config --global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。
首先,注册github账号,gitlab可以用github账号进行登录,gitlab网址输入账号密码,点击github,如图:
GitHub与GitLab区别在于,GitLab可以免费设置私人项目,适合于公司内部开发项目。
一、创建远程项目
这样一个空的远程项目就创建好了!
二、生成SSH秘钥
一个公钥(一台主机)只能被一个用户使用。
点击头像——选择settings——选择SSH Keys
之前若已生成秘钥可通过:
Windows命令提示符:
type %userprofile%.ssh\id_rsa.pub
Windows / GNU / Linux / macOS / PowerShell上的Git Bash:
cat ~/.ssh/id_rsa.pub
若第一次生成SSH秘钥对,可以通过以下命令来操作:
Windows / GNU / Linux / macOS上的Git Bash:
ssh-keygen -o -t rsa -C "[email protected]" -b 4096
(注意:该-o选项是在2014年推出的;如果此命令不适合您,只需删除该-o选项并再试一次)
[email protected]替换成你注册时的邮箱即可,如图:
然后怎么找到生成的秘钥呢?
按照刚才存放的地址,用编辑器打开id_rsa.pub文件,复制,粘贴到gitlab
三、下载远程项目到本地
经过前面的准备工作,终于终于可以下载项目了,还记得之前项目的地址吗?
在本地找一个想要存放项目的位置,右键选择Git Bash Here
输入命令 git clone [email protected]:xxxxxxxx/test.git(刚才复制的地址)
注:git clone 默认下载master分支,会把远程整个仓库的master分支代码clone下来,而且只会在本地默认创建一个master分支。
如果想要下载指定分支的代码,输入命令:git clone -b 分支名+地址;
看到test项目下已有.git文件,此文件为隐藏文件,且本地默认为master分支,接下来可以进行项目开发,增加文件等,比如
创建readme.txt文件,
vi readme.txt 新建文件 (注:mkdir 新建文件夹)
并编辑一些内容
i 进入编辑区域,可输入内容 ,输入完成后,
Esc+:(英文状态下的冒号) 一前一后按键即可,不用同时按
输入wq 保存退出
然后将此文件上传到远程分支
很简单的三步走起:
① git add . 添加所有文件到暂存区 (注:不会有任何提示消息)
② git commit -m ‘注释内容’ 提交所有文件到远程,注释内容一定要写详细,为了以后可以更加清楚自己改动的具体内容
③ git push 第一次push会有提示,根据提示命令进行push
我这个git add . 竟然有提示不管他,git push第一次没提示也不管了,反正最终成功,去gitlab上刷新会显示,如图
四、本地项目上传到远程
如果本地就有一个新项目,想要上传到gitlab上怎么办?
依然需要在gitlab上创建项目,同上,(或者直接使用上一个test项目)
本地项目分为两种情况:
1、本地项目并没有初始化git仓库
在本地新项目中右键Git Bash Here
git add . 会报错
没有.git文件
所以第一步:
git init 初始化一个git仓库,来管理新项目代码
命令执行后,该目录下会多出一个.git的目录,这个目录是Git来跟踪管理版本库的,请勿手动修改。但是.git文件夹默认为隐藏属性,因此需要通过设置系统属性,才能看到这个文件夹,也可通过命令行 ls -a查看当前项目所有文件
本地仓库创建好之后需要将本地与远程进行连接,命令如下:
git remote add origin [email protected]:xxxxxxxxxx/test.git
连接成功之后不会有任何提示,可通过命令:git remote -v 查看当前连接的远程仓库的详细地址
接下来就可以把本地项目上传到远程仓库了,同上!
2、本地项目有git仓库
已经有git仓库可使用 git remote -v查看,如果是想要上传到的远程仓库就直接那三步就行
如果想要修改远程仓库,则:
git remote rm origin 先删除本地项目连接的远程仓库
git remote -v 就已经没有任何东西了
然后继续添加远程仓库 git remote add origin + 仓库地址
五、如何进行多人协作
Gitlab的最大优势就是可以多人同步进行,下面就具体讲一下操作步骤,划重点!!!
1、作为项目负责人(管理员)该这样操作:
创建项目,将url地址发给每一个成员,点击项目,点击settings——Members,将需要进行开发的开发人员添加进来
有点像一些聊天群的管理员,可以给其他成员不同的权限。
1)负责人在gitlab上新建一个项目,并为每一个开发人员创建一个开发分支(hxh),如图:
点击 “+”选择new branch;
开发人员clone项目之后,经git branch检查发现本地只有master分支,因此也需要把属于自己的开发分支也一起获取下来
$ git fetch origin hxh:hxh
//拉取远程的一个叫hxh的分支,并在本地创建一个叫hxh的分支和远程的分支匹配
git checkout hxh
切换到hxh分支
之后就还是三步走起
2)负责人不为开发人员分别创建开发分支
虽然项目负责人不分别为开发人员创建分支,但是需要把他们添加到一个team中,否则开发人员在向项目push自己的开发分支时遇到权限错误
开发人员在把项目clone之后需要为自己新建一个开发分支(namedev_branch),因为经由git branch查看发现本地只有master分支
git branch hhh //新建分支hhh
git checkout hhh //切换到分支hhh
git push //将本地分支推送到远程分支 第一次push会有提示,采用提示的命令来push
2、下面就是各个开发人员进行本地开发,并上传代码到远程分支
例如我在本地分支hxh进行代码开发,远程一般会创建dev分支,每个开发人员会将代码合并到dev分支,最终负责人将dev合并到master分支。
①上传代码到远程(分支hxh)
git add .
git commit -m ‘注释内容’
git push
②将本地代码提交并合并到远程分支
git checkout -b dev 本地创建dev分支,并切换到dev分支
git pull 拉取远程代码,默认拉取远程仓库当前所在分支,若指定分支,则 git pull origin dev拉取远程dev分支代码
git merge hxh 将hxh合并到dev分支(可能出现冲突,需要解决冲突)
git push 将合并后的代码上传到远程
③继续进行代码开发
git checkout hxh 切换到本地分支
git pull origin dev 拉取远程dev分支代码
继续进行代码开发
④若在第三步的时候没有进行分支切换,直接在dev分支进行开发,那么可以进行以下操作:
git add .
git commit -m ‘注释内容’
git pull origin dev 防止其他人有改动,先将远程dev分支最新代码拉取下来
git push
六、git命令汇总
git add . 上传代码到暂存区
git commit -m ‘注释内容’ 将代码从暂存区提交到当前分支
git push 将代码从当前分支推送到远程分支
git branch 查看本地所有分支
git branch -r 查看远程所有分支
git branch -a 查看本地及远程所有分支
git branch 分支名 创建x分支
git checkout 分支名 切换到x分支
git checkout -b 分支名 创建并切换到x分支
git push origin :分支名 删除远程分支(注:origin后有空格)