linux搭建配置以及恢复git服务器
来源:互联网 发布:广告视频制作软件 编辑:程序博客网 时间:2024/05/21 16:58
准备工作linux电脑A(作为Server),电脑B(Client)
在电脑A上(linux Ubuntu10.10)
1 安装git,git-core
sudo apt-get install gitsudo apt-get install git-core
sudo yum install git
sudo yum install git-core
2 下载gitosis (gitosis是用来迅速搭建git server的软件包,详细的介绍可以访问https://github.com/res0nat0r/gitosis)
可以在~下新建目录叫src
mkdir srccd ~/srcgit clone git://github.com/res0nat0r/gitosis.git注意:github中和其他网站转载的文章用到的 git clone git://eagain.net/gitosis无法访问!
3 安装gitosis
cd ~/src/gitosissudo python setup.py install注意:如果报错:ImportError:No module named Setuptools 说明python的安装包缺少setuptools包。
解决方法1:
sudo apt-get install python-setuptools
解决方法2:
(1)安装python的安装工具pip
sudo apt-get install python-pip(2) 安装setuptools
sudo pip install setuptools有时候会碰到权限受限的错误,此时最好用root执行安装。
4 新建特殊用户git
这个用户主要是用来管理git的仓库,名字默认为“git”,也可以用别的名字。但是最好不要用已经存在的用户名。
sudo adduser \--system \--shell /bin/sh \--gecos 'git version control' \--group \--disabled-password \--home /home/git \git如果成功执行,则会提示
Adding system user 'git' (UID 114) ...
Adding new group 'git' (GID 123) ...
Adding new user 'git' (UID 114) with group 'git' ...
Creating home directory '/home/git' ...
useradd -m git
5 产生ssh key (电脑B)
因为gitosis主要通过ssh来实现用户访问,所以需要SSH key。
在电脑B上产生key只需要执行
ssh-keygen -t rsa公共key会在$HOME/.ssh/id_rsa.pub
6 复制ssh 公共key到Server上(电脑A)
建议放到tmp目录下,这样可以避免权限限制带来的问题。
具体方法很多,这里不再复述。
例如,直接拷贝
scp ~/.ssh/id_rsa.pub git@computerA:/tmp
7 电脑A:初始化git server
(1)导入pub key并且初始化gitosis
假设pub key在tmp目录中为id_rsa.pub
sudo -H -u git gitosis-init < /tmp/id_rsa.pub会看到两行输出:
initilailized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitillized existing Git repository in /home/git/repositories/gitossi-admin.git/
(2) 修改一个文件的访问权限
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
git clone git@computA:gitosis-admin.git这样会在当前目录下fork一个gitosis-admin的目录。里面有一个配置文件gitosisi.conf和一个存放pub key的目录keydir。
注意:有时会碰到如下错误
ssh: connect to host 192.168.0.12 port 22: Connection refused
fatal: The remote end hung up unexpectedly
说明电脑A可能没有安装SSH server
sudo apt-get install openssh-server
如果要新建库,编辑gitosisi.conf文件,添加
[gitosis][group gitosis-admin]writable = gitosis-adminmembers = user1@pc1 user2@pc2<span style="color:#663366;">[group project-a]writable = project-amembers = user1@pc2 user2@pc2</span>其中user1@pc2是在keydir目录里的公共key的文件名(不包括pub扩展名)
这里为user1@pc2.pub
如果要添加新用户到project-a,则在members新增新用户的pub key文件名,如new user@somedomain
将newuser@somedomain.pub拷贝到keydir目录里,将改动的conf文件和新的key同时push到git server即可。
10 上传文件到库
这里有两个场景:
(1)全新的项目
(2)已有的git仓库恢复
过程差不多,但是对已有的git仓库而言,有几个问题需要注意。
比如有项目的文件夹为project-a
a.进入项目文件夹
cd project-a
b.初始化git本地仓库
git init
c.建立本地与服务器关联
git remote add origin git@YOUR_GIT_SERVER_HOSTNAME:project-a.git
d.提交本地代码
git push origin master:refs/heads/master
至此新的库和对应文件已经上传到server端,其他用户可以
git clone git@YOUR_GIT_SERVER_HOSTNAME:project-a.git获得项目文件。
对于已有的git仓库恢复,指的是server端电脑A出问题,系统重做后,如何把电脑B的内容提交到电脑A,从而复原git server。
其实步骤都和上面一样,只是如果执行到10的d步骤时,会提示rsa的key不匹配,这里只需要将电脑B ~/.ssh/known_hosts文件里对应的旧rsa key删除即可。
比如以前的服务器的IP为192.168.0.12,你会在known_hosts文件里看到,如下
...113.116.44.123 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/h79FdQwU2xG7cWncZEzI5gxK1l6p3aoTwneW9snRyTQmAT3OQV5wPiiYrj/W9HyVi7sX0BeaBlGb71ipViOXMrflva3KbCBTx8KZ6vawaSxtIhRaWd+Xzd5Kg3A69IYpLHW/0BTMVh3B53zBbxb9QzFVwfqb3AITEQxd/z6wdxLyTfmxz5CCARUaAi8F7LZ8Q5zNyyAlY5oG92i0/eJ0RmqgyNpno/ZxfoBxkAFAyUtLRbBdsj1eoGynJS9IzqjyW7WTol6aWwmBemn6gZO6FecLgIKSiG4+TYebvTZqC3aBcNxrKTmFqvu80Qv1beZ6kVWjbBOmDBhOdz2Max37113.118.228.88 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/h79FdQwU2xG7cWncZEzI5gxK1l6p3aoTwneW9snRyTQmAT3OQV5wPiiYrj/W9HyVi7sX0BeaBlGb71ipViOXMrflva3KbCBTx8KZ6vawaSxtIhRaWd+Xzd5Kg3A69IYpLHW/0BTMVh3B53zBbxb9QzFVwfqb3AITEQxd/z6wdxLyTfmxz5CCARUaAi8F7LZ8Q5zNyyAlY5oG92i0/eJ0RmqgyNpno/ZxfoBxkAFAyUtLRbBdsj1eoGynJS9IzqjyW7WTol6aWwmBemn6gZO6FecLgIKSiG4+TYebvTZqC3aBcNxrKTmFqvu80Qv1beZ6kVWjbBOmDBhOdz2Max37<del>192.168.0.12 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs3guvL3wffuMXmEnghFIFzU9leD+n/U1K+U7IOBesHFtTJ0EEpDnusNwaXq/fqtHsA8FMVk7VyI5IzptCq57/Yi1Cpyrv1zUUC2YPSlMl6qMoPiP1QYMAQBPkiAmq6KJIRu14xpZQDu+hHH1b0g7R/Y0ZGaNGzdcsq5UEdMTzyLZZn+6BamzbsF71oLuEwMlI3vhe/wsn8XfuZbRQhae3lt3frhM79JqUcGoGN2FYOeqv3PpyW7k8uIsCAe2HhxprLbLwVOWh0l4gwR0lt8yOrUEoVnmZfOpwCfBpFTg1Wq2UDBddFdm/01P7eJM8millqo6AIATr7sYzDsIAYiql</del>...将对应的key删除,保存退出。再执行push即可恢复。
11 结论
至此完成了git server的搭建,或者恢复工作。
- linux搭建配置以及恢复git服务器
- Linux git服务器搭建 配置IDEA git
- linux搭建git服务器
- linux - git服务器搭建
- linux搭建git服务器
- linux git 服务器搭建
- Linux git 服务器搭建
- linux 搭建git服务器
- Linux搭建Git服务器
- Linux搭建git服务器
- Linux (centos7) 安装Git搭建服务器以及客户端安装
- Git服务器搭建和配置
- 在linux搭建git服务器
- 在linux搭建git服务器
- git服务器简单搭建 linux
- Linux CentOS搭建Git服务器
- git 服务器搭建 for linux
- Git 服务器搭建(Linux)
- HIVE JDBC
- 王爽《汇编语言》学习笔记--第八章
- Spring Web Service 学习之Hello World篇
- 字节
- java、反射和动态代理
- linux搭建配置以及恢复git服务器
- javaweb-07-Servlet的线程安全问题
- UDP编程
- 安全相关网站
- codeforce #163 div2
- ucore lab1 任务五
- 加强2注解。泛型。类加载器及其委托机制。代理的概念与作用原理,AOP概念。实现AOP功能的封装与配置。类似Spring。
- html块级元素与行内元素
- ucore lab1 任务六