Mac 搭建 Git 服务器

版本控制想用 git,公司项目不想放到网络上去,在局域网供小组使用就可以,所以选择一台电脑用于搭建 git 服务器,下面开始

新建用户

为什么要新建用户呢,因为电脑自己在同时使用,如果用自己登录的用户来做 git 服务器的话,别人就可以访问自己电脑里的所有资料了,新建用户的目的为了隔离

系统偏好设置 -> 用户与群组 -> 添加

这里因为我之前已经创建过了,截图只是为了演示

登录新用户

点击右上角的小人,可以快速切换登录

开启 SSH 访问

系统偏好设置 -> 共享 -> 打开远程登录

这个图本来应该截 git 用户的,但是新用户啥都没有,不方便截图。现在就可以喊小伙伴试试可不可以访问了,在终端输入

1
ssh git@192.168.1.111

别被我的截图懵住了,这里要告诉小伙伴是你作为 git 服务器的用户,当然还有密码,如果一切正常

1
2
3
$ ssh git@192.168.1.111
Last login: Mon Sep 3 08:34:34 2018
git$

就会告诉你最后登录时间,同时会切换到git用户,别问我为啥我这里没有输密码,因为我已经把 ssh 的公钥设置了,可以无密码登录,这个等下会说

创建 git 仓库

切换到了 git 用户后,随便找个地方建个文件夹,用来做 git 远程仓库

这里我在桌面新建一个文件夹,名字叫 gittest.git,通常仓库名以 .git 结尾

然后在终端切换到这个文件夹目录下,输入

1
2
git$ git init --bare
Initialized empty Git repository in /Users/git/Desktop/gittest.git/

这样,一个空仓库就弄好了,喊小伙伴去 clone 一下试试

愉快玩耍

现在已经有了远程仓库了,git 该怎么玩就怎么玩了,现在克隆下(也可以把本地的 git 关联到远程库去)

1
2
3
$ git clone git@192.168.1.111:Desktop/gittest.git
Cloning into 'gittest'...
warning: You appear to have cloned an empty repository.

其中 git@192.168.1.111:Desktop/gittest.git 这一串就是远程库地址,@ 符号前面的 git 表示用户名,后面是 git 用户所在的局域网地址,最后就是我们新建的仓库文件夹路径了

关联 ssh 公钥

如果没有关联公钥,你每次与远程库打交道的时候都需要输入密码,不嫌麻烦的人下面的可以不用看了

首先让小伙伴在自己的电脑上生成 ssh 公钥

1
ssh-keygen -t rsa

默认生成路径 ~/.ssh/id_rsa.pub

然后让小伙伴把这个文件的内容 copy 给你,选择用文本文件打开此文件即可

现在登录 git 用户,在 .ssh 目录下找到 authorized_keys 文件,如果没有就新建一个,然后把 copy 给你的 公钥复制到此文件中,如果有多个公钥,就一行一个,保存。

ok,可以无密码畅快操作了。

固定 ip

如果你是用的自己开发的电脑,一般开机之后都会重新获取局域网的 ip,如果你的 ip 变了,小伙伴就又得改远程地址了,所以这里说下怎么固定 ip

系统偏好设置 -> 网络 -> 高级 -> TCP/IP

DNS 必须设置,我这里是 192.168.1.1,根据自己局域网的 DNS 设置

谨以此记录