服务器上建Git仓库

服务器上建Git仓库,第1张

$ apt-get install git

$ sudo adduser git

收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

如果没有该文件创建它:

首先我们选定一个目录作为Git仓库,假定是/home/gitlab/runoob.git,在/home/gitlab目录下输入命令:

一定要将初始化的仓库给Git

$ chown -R git:git probject.git

$ git clone git@<ip>:/home/gitlab/probject.git

然后就可以推送了

出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

icloud并不能直接作为远程git仓库使用,因为icloud上的文件并不可以直接访问,但可以作为本地git仓库使用。

大致思路是这样:

本地目录 《- git -》 本地git仓库(icloud目录) 《- icloud -》 icloud备份服务器

创建icloud目录本地的快捷访问路径(软链接)

在icloud中创建一个共享的git仓库(--bare相当于svn中的远程仓库概念)

以上,访问 ~/icloud/repos/demo.git 就相当于访问了远程git仓库。

在任意目录下,初始化本地的git项目,配置远程git仓库,然后把本地的所有分支push到远程仓库。

从远程仓库中拉取项目。

类似本地svn仓库服务器一样,其实是搭建了本地的git仓库服务器。

由于是本地访问,所以通过 本地路径/project.git 来访问。

因为本地仓库是建立在icloud自动备份的目录下,所以icloud会自动备份这个git仓库服务器。

如果本地机器有对外的IP,那么这个过程相当于建立了远程的git服务器,并对服务器上的git仓库进行了icloud的备份。

个人理解:

--bare就是建立一个git仓库服务器。既然是git仓库服务器,就没必要存储实际的workspace,只需要存储能生成workspace的文件即可。而对于git而言, .git 目录才是仓库的核心。所以,--bare相当于只存储 .git 目录。

查看服务器中的 XXXX.git 目录和本地的 .git 目录,就能发现两者结构几乎一致。(正规的说法并不是这样)

http://winterbe.com/posts/2014/11/27/setup-icloud-git-repository/


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/710527.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-06
下一篇2023-08-06

发表评论

登录后才能评论

评论列表(0条)

    保存