$ 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/
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)