Gitlab 使用总结

Gitlab 使用总结

  总体来说Gitlab是一个很不好理解的代码版本工具,但是为了工作更高效还是把它疏通了一遍,至于怎么注册Gitlab和配置ssh密匙这个就不多赘述了,网上教程很多,可自行Google。

一,Gitlab的三区和两个概念Gitlab:
  所谓三个区是指工作区,暂存区以及head区,工作区自然就是指你本地工作的目录,这时候你和Gitlab关联后就成了工作区,暂存区是当你git add 的时候,会把你的内容提交到暂存区,当你git commit的时候会把暂存区的内容提交到head区,这时候就可以推到远端了。两个概念是指本地和远端,本地是指你工作的host,远端是指你代码要存放的git区。你把代码commit后只是在head区,并没提交到远端,只有当push后才会上传都远端。

二,Gitlab的工作流程:
  1,Gitlab的初始化,Gitlab有两种初始化方式,①你可以用git clone URL 直接把你想拉取的分支clone到本地目标,这样自然会关联上。②当你不想git clone的时候,你可以在你本地的目标下执行git init指令,这时候会在你工作目录下生成.git文件,这里面会记录一些东西,如果你想精通git的具体执行流程,建议.git具体的内容可以进去查看。
  2,Gitlab的添加想要submit的文件到暂存区,这时候执行git add [file]即可提交你想提交的文件到暂存区,当然git add支持通配符添加方式,比如 git add t* 把所有t开头的文件提交。
  3,Gitlab把缓存区的内容提交到head区,执行git commit 在 git commit的时候可以用-m添加一些说明,比如git commit -m “first submit”。
  4,Gitlab和远程关联,和远程关联有两种操作,可以用URL或者ssh,这里以URL为例,执行git remote add “shotname” url,其中shotname你可以理解为一个类,你创建了一个类,你的分支就是对象。
  5,上传head区到远端,执行git remote “shotname” “分支名” 既可把shotname下的分支上传到gitlab的远端仓库。可以理解为类的某个对象上传到远端。

三,如果你没有什么骚操作,二就基本可以满足要求了,下面可以理解为进阶:
  1,git branch指令
    ①:git branch -b dev(dev 代表分支名字),为创建新的分支并转到该分支
    ②:git branch -d dev 删除dev的本地分支
    ③:git branch -d -r 删除本地关联的远程分支
    ④:git branch -a 查看所有分支
  2,git push指令
    ①:git push shotname dev 把shotname下的dev分支推到远端
    ②:git push shotname :“远端分支名字” 删除远端分支,可以理解为推送一个空的分支到远端分支,自然就是删除了。
    ③:git push --all shotname 推送shotname下所有分支到远端
    ④:git push --force shotname 有时候本地比远端版本低的时候你git push会提示你先git pull来更新本地,但是你想强推就用git push --force shotname,不建议使用。
    ⑤:git push -u shotname dev 当本地目标和多个远端多个工程关联时候,需要用-u 指定当前为默认主关联。
  3,git rm指令git rm ‘file’ 从暂存区和工作区删除文件。
    git rm --cached ‘file’ 只从缓存区删除文件。
  4,git reset指令
    git reset [–soft | --mixed | --hard] [HEAD]
    --mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
     --soft 参数用于回退到某个版本:$ git reset --soft HEAD~3 # 回退上上上一个版本。
    -hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:
    git reset –hard HEAD~3 # 回退上上上一个版本
    git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。
    git reset --hard origin/master # 将本地的状态回退到和远程的一样
  5,其他指令
    ①:git diff 比较文件的不同,即暂存区和工作区的差异。
    ②:git status 查看文件状态, 查看文件哪里做了改变。

四,关于分支的一些总结:
    Gitlab的总体是以project的理念写的,一个project有很多人员开发,这时候需要一个主轴,这个主轴就是master分支。当你需要开发一个功能的时候,你需要新建一个分支(dev),记作时间T0,你的分支dev就一个时间节点, 你就只能看到master在T0之前的内容,因为你的时间节点为master主轴的T0时间点,这时候你可以修改一些东西,或者新建一些东西,等你的工作做完,你就可以申请合并到master主轴上,这时候你的分支就失去意义了。这些记忆的功能都由.git下的各个文件夹完成,每次commit的时候它会为每个文件夹分配一个指针,如果这个文件被修改了,那它会重新分配一个指针,没修过就用原来的指针,新建的文件就新分配指针,这时候算是一次快照完成,所以执行的git diff,git status等指令都是对比前后指针的差异来完成,回滚版本也是同样如此,而且是只能以时间点回滚,因为只记录了某次提交的指针。

### 如何在 Windows 上使用 GitLab 要在 Windows 系统上使用 GitLab,通常可以通过两种方式实现:一种是通过 Docker 部署 GitLab 服务端;另一种是在 Windows 中安装和配置 Git 客户端来连接已有的 GitLab 服务端。 #### 使用 Docker 在 Windows 上部署 GitLab 为了在 Windows 上运行 GitLab 服务端,可以借助 Docker 来快速部署。以下是具体的流程: 1. **安装 Docker Desktop** 访问 Docker 官方网站 (https://www.docker.com/) 并下载适用于 Windows 的 Docker Desktop 版本[^3]。安装过程中可能需要启用 WSL(Windows Subsystem for Linux),如果未安装 WSL,则需根据提示完成其安装后再继续。 2. **拉取 GitLab 官方镜像** 打开 PowerShell 或命令行窗口,执行以下命令以搜索并获取 GitLab 社区版的官方镜像: ```bash docker search gitlab/gitlab-ce docker pull gitlab/gitlab-ce ``` 3. **启动 GitLab 容器** 创建一个新的容器实例并将必要的端口映射到主机上: ```bash docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab-container \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest ``` 这里需要注意的是 `/srv/gitlab` 是宿主机上的目录路径,用于存储 GitLab 数据[^1]。 4. **访问 GitLab Web 界面** 默认情况下,GitLab 将监听 HTTP 和 HTTPS 流量。打开浏览器并导航至 `http://localhost` 即可看到初始登录页面。首次访问时会设置管理员密码。 --- #### 在 Windows 上安装和配置 Git 客户端 如果您不需要自行搭建 GitLab 服务端,而是希望仅作为客户端接入现有的 GitLab 实例,则需要如下操作: 1. **下载并安装 Git for Windows** 前往官网 (https://www.git-scm.com/download/win) 下载最新版本的 Git 工具包,并按照向导完成安装过程[^2]。 2. **初始化全局配置** 设置用户名与邮箱地址以便提交记录能够关联到您的身份: ```bash git config --global user.name "Your Name" git config --global user.email "your-email@example.com" ``` 3. **克隆远程仓库** 利用 SSH 密钥或者 HTTPS URL 方式从目标 GitLab 地址复制项目代码库下来: ```bash git clone http(s)://<server-address>/<project-path>.git ``` 4. **生成 SSL 证书(如有必要)** 如果涉及自定义域名下的安全通信需求,那么还需要额外准备 OpenSSL 软件环境来进行 CA 数字签名认证工作流支持[^4]。 --- ### 总结 无论是选择直接利用 Docker 技术构建完整的 CI/CD 生命周期管理平台还是单纯充当开发者角色参与协作开发活动,在现代软件工程实践中掌握好这些基础技能都是非常重要的环节之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值