zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

mac本地搭建自己的git服务器

服务器GitMac 搭建 自己 本地
2023-09-14 09:11:20 时间

转自:https://www.jianshu.com/p/df6c3f14f7f7

1.新建git用户

注意要选择管理员角色。

在系统偏好设置->共享 中,选择远程登录,勾选git用户允许访问。

2.Git server设置

本地开一个终端,默认用户登陆,

ssh git@yourComputerName.local

提示输入密码则成功,本地在~/.ssh下生成公私钥, 将本地的公钥拷贝到git对应的~/.ssh下,先在git用户下创建.ssh目录,然后本地上传到git:

scp ~/.ssh/id_rsa.pub git@yourComputerName.local:.ssh/authorized_keys

上述链接中说,git用户下/etc有sshd_config或者sshd_config~previous,但我都没有,所以不做这一步了。

 3.创建裸仓储

mkdir myproj && cd myproj 
git init --bare myproj.git
--bare 参数表明只是用来存储 pushes,不会当做本地 repository 来使用。创建一个裸仓储。

https://moelove.info/2016/12/04/Git-本地仓库和裸仓库/ 

 不加 --bare参数的git init 命令是创建一个本地仓储,会包含工作区,而裸仓储不包含工作区:

  • 从裸仓库 clone 下来的本地仓库可以进行正常的 push 操作, 但是从一般仓库 clone 下来的本地仓库却不行。 这也正是裸仓库存在的意义。 裸仓库一般情况下是作为远端的中心仓库而存在的。
  •  裸仓库不包含工作区,所以并不会存在在裸仓库上直接提交变更的情况。而是通过clone后push操作。

在本地克隆:

git clone git@yourComputername.local:/Users/git/myproj/myproj.git ./

clone会有warning,这是一个空的仓储,可以忽略。

裸仓储目录内容如下:

myproj.git % ls
HEAD        description    info        refs
config        hooks        objects

https://segmentfault.com/q/1010000002549403

裸(bare)仓库里只存储历史和元信息(详细格式),不会维护工作目录