git知识总结-4.git服务器搭建及迁移git仓库 Linux ssh秘钥生成并导入SecureCrt

1. 前言

由于手里有一份代码以前是直接从其它git服务器上克隆下来的,如今想本身搭建一个git服务器把这份代码管起来。html

2. 搭建git服务器

1.安装gitgit

$ sudo apt-get install git 

2. 建立一个git用户,用来运行git服务:sql

$ sudo adduser jason

3. 建立证书登陆shell

收集全部须要登陆的用户的公钥,就是他们本身的id_rsa.pub文件,把全部公钥导入到/home/book/.ssh/authorized_keys文件里,一行一个。安全

此处可参考文档:Linux ssh秘钥生成并导入SecureCrtruby

4.初始化Git仓库:bash

先选定一个目录做为Git仓库,假定是/home/share/,在/home/share目录下输入命令:服务器

$ sudo git init --bare kernel.git 

Git就会建立一个裸仓库,裸仓库没有工做区,由于服务器上的Git仓库纯粹是为了共享,因此不让用户直接登陆到服务器上去改工做区,而且服务器上的Git仓库一般都以.git结尾。app

而后,把owner改成jaosn:ssh

$ sudo chown -R jason:jason kernel.git 

5. 禁用shell登陆:

出于安全考虑,第二步建立的jason用户不容许登陆shell,这能够经过编辑/etc/passwd文件完成。找到相似下面的一行:

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

改成:

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

这样,git用户能够正常经过ssh使用git,但没法登陆shell,由于咱们为git用户指定的git-shell每次一登陆就自动退出。

6. 克隆远程仓库

如今,客户端电脑上能够经过git clone命令克隆远程仓库了,在各自的电脑上运行:

$ git clone jason@192.168.0.100:/home/share/kenel.git Cloning into 'sample'... warning: You appear to have cloned an empty repository.

3. 将git代码迁移到搭建的git服务器

1. 将以前的代码分支push到新搭建的git服务器

$git push jason@192.168.0.100:/home/share/kernel.git master

其中master为本地分支,与以前代码的远程分支关联

2. 在git服务器的/home/share/kernel.git目录下就能够看到新push的分支master

$git branch

3.客户端克隆代码

$git clone jason@192.168.0.100:/home/share/kernel.git

参考文档

【1】https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

相关文章
相关标签/搜索