GitLab(Git)的初次使用

Posted by Nutlee on 2016-08-14

本文以我部署好 GitLab 服务端后的初次使用过程为例,以一个完全没接触过 Git 的团队成员视角及顺序,介绍第一次使用 GitLab 时需要注意的地方,故文中夹杂了 Git 操作。后续会推出 GitLab Web 部分的操作教程。

Git

Git 与 SVN 等工具最大的区别就是代码库是分布式,分支切换、版本回退都是指针操作,效率很高,同时当团队成员很多、代码量庞大的时候,性能也非常优秀。
使用 Git 主要分两部分,服务端和客户端,现在 Git 服务端已经部署完毕 — GitLab,可以根据自己的个人喜好选择 GUI 程序或命令行使用 Git 服务。

Git 客户端

客户端环境,访问官网,直接安装就好。
官网安装包附带 Git GUI,当然你也可以选择其他任意第三方,或者使用 IDE 自带 Git 插件。

安装完成后需要设置提交者信息,Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。

SSH

虽然可以使用 https 连接 Git 远端仓库,但此处推荐使用 SSH,不仅仅是因为更安全,同时 SSH 使用 Git 协议速度更快。

生成 SSH 密钥

  • 如果从未使用生成过 SSH 密钥
1
ssh-keygen -t rsa -C "your_email@example.com"

中间有可选输入密码的地方,直接按回车就好。
Windows 中 /C/Documents and Settings/username/.ssh 下会有两个文件

1
2
id_rsa
id_rsa.pub
  • 如果有关联其他服务器的 SSH 密钥,并且需要与当前 GitLab 隔离开
1
ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM" -f ~/.ssh/gitlab

最后的 “gitlab” 即为自定义的 SSH 文件名,然后在 .ssh 文件夹中创建 config 文件(没有扩展名),在其中输入

1
2
3
4
5
# gitlub (如果邮箱不同也可在此处注释)
Host gitlab.com
HostName 192.168.2.156
User git
IdentityFile ~/.ssh/gitlab

其中 192.168.2.156 为我部署过的的 GitLab 服务端地址。

对于原 SSH 也可以使用这种方式分配路径。
同时此方法也可以用来配置多 GitHub 账户。

GitLab 中配置公钥

打开 id_rsa.pub 复制公钥,粘贴到 GitLab 中 个人资料设置/ SSH 密钥中。

测试 SSH 连接

1
ssh -T git@192.168.2.156

其中 192.168.2.156 为我部署过的的 GitLab 服务端地址。

如果是配置了多 SSH,直接可以使用 gitlab.com 测试,即

1
ssh -T git@gitlab.com

如果测试成功会出现

1
Welcome to GitLab, USERNAME!

创建第一个项目

  • 配置提交时的 Git 用户名/邮箱,此处配置的为全局用户名/邮箱
1
2
git config --global user.name "用户名"
git config --global user.email "密码"
  • 在本地新建文件夹,如Git-Guide
  • 在 test 内创建一个简单文件,例如 README.md
  • 在 GitLab 中创建项目 Git-Guide
  • 使用 Git bash 打开到 Git_Guide
  • 创建代码仓库
1
git init
  • 关联远端仓库
1
git remote add origin git@gitlab.com:lixuan/Git-Guide.git
  • 添加文件
1
git add README.md
  • 提交到版本库
1
git commit "initial commit"
  • push 到远端
1
git push -u origin master

Git 开发流程

最少需要两个分支

1
2
master
dev
  • 根据个人需要创建 bugfix、feature 等其他分支,并谨慎合并到主分支。
  • 禁止使用 -ff or –force 等强制提交,覆盖中央仓库的内容,除非你知道你在做什么!
  • 提交说明结构

    动作 + 组件 + [原因-索引]

    • 动作:即提交的行为,句首字母大写。有文章认为只使用 Update、Add、Remove
      三个动作就可以满足使用。但是为了更精准地描述,可以另外配合 Polish(改进)、Fix(修复)、 Rework(修改)、Allow(允许)、Check(审查)、Merge(合并)。每一次提交只应该有一个动作,多 个动作请适当拆分。

    • 组件:指的操作内容,应该用精准的名称,类名方法名等,方便快速定位。不应该提供宽泛的文件名。

    • 原因及索引:必要情况下用精简的语句描述原因。

Git 操作小结

1
2
3
4
5
6
7
# 全局设置
git config --global user.name "用户名"
git config --global user.email "邮箱"
# 仅设置当前仓库
# 如果为了区分个人项目和公司项目可以只设置当前仓库
git config user.name "用户名"
git config user.email "邮箱"

基本操作

  • 查看版本
1
git version
  • 创建一个代码仓库,在项目文件夹内
1
git init
  • 关联远端仓库
1
git remote add origin git@gitlab.com:lixuan/test.git
  • 向暂存区添加文件
1
git add 文件名
  • 向当前分支提交暂存区文件
1
git commit -m “说明”
  • 创建并切换分支
1
git checkout -b 分支名
  • 切换分支
1
git checkout 分支名
  • 向远端仓库推送(例主分支)
1
git push origin master
  • 向远端仓库推送并关联对应分支(例主分支)
1
git push -u origin master
  • 合并分支当前分支到 branch
1
git merge --no-ff -m “说明” branch
  • 克隆版本库
1
git clone git@gitlab.com:lixuan/Git-Guide.git

相关连接
廖雪峰 Git 教程