gitlab入门指南
hello,作为新人来到公司,发现企业代码都是用的gitlab,具有方便多人协同、易管理等特点。之前用过github,基本操作都是一样。今天刚好有时间整理一下,方便后续查看。
gitlab和github的简单区别:
简单粗暴的说:
gitlab更加倾向私密性,所以一般面试企业或学校,在内网中创建私有仓库,比如我目前所在的公司就是用的gitlab创建的企业私有仓库,外网是无法访问的。
github更加倾向于开源性,面向大众,一般用于共享的代码托管,比如我想开源最近的工作,并且和大家一起学习交流,这时就可以用github来实现全网共享。
gitlab简单使用:
- 终端查看一下git版本,检查是否安装git指令。
- 建立本地仓库
- 修改或增加本地仓库里的代码文件
什么是本地仓库?为什么要建立本地仓库?
本地仓库可以简单理解为一个文件目录,这个文件夹里面放的代码就是待会要上传到gitlab远程仓库中的文件。
建立本地仓库就是为了方便git管理,待会需要和远程仓库关联,后续对文件夹里面的数据修改,删除或增加是都是有记录溯源的。
本地仓库如何建立?
- 在ubuntu终端中选择一个文件夹(这个文件夹可以是新建的也可以是你接下来待上传文件所在的文件夹)。
- 进入上述文件夹,初始化仓库,初始化指令如下:
// An highlighted blockgit init
经过git init后,此时的文件夹就不在是一个普通的本地文件夹了,而是一个git可以管理的本地仓库。
本地仓库中的三个区:
世上没有白走的路,学会多问问为什么。
工作区:
本地工作目录和gitlab关联后,就成为工作区。
暂存区:
暂存区又称缓存区,所有需要提交的文件都需要先加入到暂存区,用git add 指令把待提交的文件加入暂存区。
本地仓库
通过git commit将暂存区里的代码提交到地方称为本地仓库(此时还没有push到远程仓库,所以gitlab中还没有本地上传的文件)。
//添加指定文件到暂存区
git add file
//添加所有目录中所有问价到暂存区
git add .//将暂存区的文件提交到本地仓库,-m表示只会提交暂存区的文件,还有一种是-a -m:表示提交已修改的,但是还没有到缓存的文件,简言之:修改过的都可以提交
git commit -m "备注"
上述已经完成三个区的介绍,那么如何查看这个三个区里面的内容?
git status命令可以查看暂存区和工作区的状态
git status //查看当前状态,结果如下图
Untracked files:表示只在工作区有的文件(暂存区没有的文件)
git add demo.cpp //提交文件到暂存区
git status //查看当前工作区和暂存区的状态
Changes to be committed:表示从工作区add到暂存区的文件。
Changes not staged for commit:表示在工作区和暂存区都存在的文件(add到暂存区后的文件),但是在工作区修改后,没有及时add到暂存区(即没有更新暂存区那个被修改的文件),如下图所示:
思考:如果提交到暂存区的文件突然不想放入暂存区了,那么如何撤回呢?
答:git reset HEAD --<空格> filename 这行命令帮助我们撤销暂存区指定的文件;
git reset HEAD --<空格> . 一次性撤销暂存区所有的文件;
git rm --cached 删除暂存区文件,工作区文件仍然存在。
远程仓库:
远程仓库是什么?
简言之:远程仓库就是在gitlab上建立的仓库,可以把本地代码上传保存的地方,前面所做的工作都是为了把本地代码上传到远程仓库。
远程仓库建立
此处省略。。。。
远程仓库与本地仓库关联
按照上述步骤已经建立好本地仓库和远程仓库,使用如下指令可以完成本地仓库和远程仓库的关联,远程仓库地址比较长,为了方便使用,使用如下指令为远程仓库链接创建别名,方便代码推送。
git remote add origin 远程仓库地址
远程仓库克隆到本地
提供一个简便的方案:即不需要建立本地仓库,只要在新建完成远程仓库后通过git clone到本地,会发现本地文件中存在一个和远程项目名称一样的文件夹,即本地仓库。
撤销文件修改
上述提到git的三个区:工作区、暂存区和本地仓库。对于每个区的撤回操作也是不一样的,所以针对每个区做详细介绍。
第一种:只在工作区修改,没有add到暂存区
因为没有提交到暂存区,所以和普通文件一样,没有特殊意义。
第二种:修改的文件已提交到暂存区但是没有提交到本地仓库
git checkout – filename
如下图所示:
第三种:修改的文件已提交到本地仓库
git reset --hard HEAD^ //回退到上一个版本
//查看当前版本及其上一个版本
git log --oneline
// 回退到之前的版本 版本穿梭(回到之前提交的任意一个commit)
git reset --hard commit-id
// 查看历史所有的版本
git reflog --oneline
//回退到指定的版本
git reset --hard id
Git分支新建和使用
git分支方便多人协同开发的互不影响,但用能互相融合的手段。
// 新建一个分支dev
git branch dev
//切换到分支dev
git checkout dev
//在dev分支上合并主分支
git merge master -m “注释说明”
//切换到主分支
git checkout master
//在主分支上合并开发
git merge dev -m “注释说明”
默认分支仅有master,在本地新建dev分支并且进入该分支后,后续的所有修改都是在该分支上处理的,当需要推送到远程分支时,若远程没有该分支dev,git会自动帮助创建分支dev并且上传文件的远程分支dev。
版权归原作者 SHU_CHUN 所有, 如有侵权,请联系我们删除。