系统运维
前面我们已经搭建好了Gitlab服务,也讲到了gitlab一些安全设置,但作为用户,该如何来使用gitlab呢?请看下文。
1、绑定hosts,使用notepad打开C:\\Windows\\System32\\drivers\\etc\\hosts,绑定gitlab服务器的IP地址,映射成域名,方便记忆并访问,如图1所示。
192.168.59.250 gitlab.demo.com
图1
完成上述hosts设置后,其实我们就可以通过访问http://gitlab.demo.com来注册gitlab账号了。注册账号最好用公司邮箱,如公司给我分配的邮箱是 firefly@demo.com,我将使用该邮箱来注册gitlab账号,然后由配置管理员对 firefly@demo.com 账号分配相关仓库权限。
管理员分配了相关组或者仓库权限后,此时我们可以用自己的账号登录 http://gitlab.demo.com 查看相项目内容了。那是不是到此gitlab的操作就讲完了呢?当然不是,如果想将项目克隆到本地,并在本地修改项目文件,最后又提交到gitlab服务器,对于这种操作,我们要借助Git和TortoiseGit。
2、安装Git以及GUI客户端TortoiseGit和中文语言包。Git下载页在Github上:https://github.com/git-for-windows/git/releases
GUI Clients 选择TortoiseGit,对应下载链接如下:
https://download.tortoisegit.org/tgit/2.9.0.0/TortoiseGit-2.9.0.0-64bit.msi
https://download.tortoisegit.org/tgit/2.9.0.0/TortoiseGit-LanguagePack-2.9.0.0-64bit-zh_CN.msi
下载完成后,按1、2、3顺序完成安装,如图2所示,安装过程中相关设置均按默认即可。
图2
3、成功安装后,鼠标右键如图3所示。
图3
点击TortoiseGit –> Setttings,可设置语言为中文,点击“应用”,如图4所示。
图4
然后,在“Icon Overlays“,选择Shell Extended,如图5,这样设置的目的是当git仓库中有文件发生变更时,文件图标状态也跟着变化,效果如图6所示。
图5
图6
4、接下来再对Git做全局设置,以下命令用Git Bash完成,如图7所示。
图7
设置用户名和邮箱地址(注意用自己注册gitlab时的邮箱)
git config –global user.name firefly
git config –global user.email firefly@demo.com
将color.ui 设置为auto 可以让命令的输出拥有更高的可读性。
git config –global color.ui auto
将credential.helper设置为store,可以存储用户以及密码,避免每次提交或拉取时要手动输入用户名和密码。
git config –global credential.helper store
上述git config命令将会在用户家目录下(Windows是C:\\Users\\xusers,Linux是~/.gitconfig)下生成.gitconfig文件,内容如下。
cat .gitconfig
[user]
name = firefly
email = firefly@demo.com
[credential]
helper = store
[color]
ui = auto
如果想再更改这些信息,可以直接编辑.gitconfig文件,如图8所示。这里设置的姓名和邮箱地址会用在Git 的提交日志中。由于在GitHub 上公开仓库时,这里的姓名和邮箱地址也会随着提交日志一同被公开,所以请不要使用不便公开的隐私信息。
图8
完成上述设置后,我们就可以使用HTTP方式操作gitlab的仓库了,先复制项目的HTTP的克隆地址,如图9所示。
图9
使用TortoiseGit来clone仓库,如图10所示,选择“Git 克隆。
图10
粘贴板会自动将要克隆的地址填入,如图11所示。
图11
点击”确定“,会提示输入用户名和密码,如图12所示。
图12
密码输入正确后,将完成项目克隆到本地的操作,如图13所示。
图13
重要说明:如果在上述操作过程中输错了用户名或密码,点击”确定“时会提示用户名或密码不正确,但不会再弹出输入用户名密码的对话框,此时就得到”控制面板“–>”用户账户–>凭据管理–>管理Windows凭据,删除对应的凭据即可,如图14所示。
图14
图15
commit+push操作对应SVN的commit。因为Git的commit是先提交到本地仓库,然后再push到gitlab服务器。即git的提交修改操作均保存在本地,不需要连gitlab服务器也可以查看历史修改记录。而SVN不行,如图16所示。
图16
5、完成上述操作后,就已基本满足我们日常工作需求了。但作为一名开发人员,如果不会SSH访问git仓库的话,下次要是被新入职客户端MM请教会不会就错失了告别单身的机会(哈哈),正所谓技多不压身。
使用ssh-keygen命令生成密钥文件,id_rsa文件是私钥,id_rsa.pub是公钥。
ssh-keygen -t rsa -C firefly@demo.com
使用上面命令,直接回车,完成密钥生成,如图17所示。
图17
复制id_rsa.pub文件中内容并添加到git账户firefly@demo.com用户下,如图18所示。
图18
使用firefly账户登录网页版gitlab服务,在Settings --- SSH Keys中添加id_rsa.pub中的公开密钥,然后点击“Add key”,如图19所示。
图19
由于gitlab服务器ssh端口不是使用默认的22,而是6688,我们还需要创建C:\\Users\\tgh\\.ssh\\config文件(如果有多台gitlab服务器,均可以在config文件中添加),如图20所示。
cat >>.ssh/config <<EOF
host gitlab.demo.com
hostname 192.168.59.250
port 6688
EOF
图20
好啦,我们可以使用ssh方式来克隆项目了,如图21所示,先复制要克隆的项目地地址。
图21
注意,使用ssh方式克隆项止,URL是以git@开头,如图22所示
图22
点击”确定“,如图23所示,我x,又报错啦,捂脸好尴尬。
图23
可千万别被小小的报错给吓到,我们只需要再设置一下TortoiseGit的网络,更改一下SSH客户端,如图24为修改前路径,图25为修改后路径,即我们要用Git自带的SSH客户端来解决这个报错。
图24
图25
完成设置后,我们再来尝试克隆一下,如图26,图27所示,顺利完成。
图26
图27
碰到问题不回避,这样,我们离大神和女神都更近了一步^_^,加油。