[其余](#其余)
本文主要针对两种应用场景,第一种场景:Github
为每一个免费用户提供 0.5 Gb
的空间,不过只能存放公开的代码,若是你想在 Github
上保存私有代码,只有成为付费用户才行。另外一种场景是你的私有代码并不想公开放到互联网上,由于你以为不安全,你只想把它们保存在本地局域网内部,可是你又很想用 git
来进行版本控制。怎么办?很简单,本身搭建一个 git
服务器。git
下面说说作一个服务器有哪些条件应该知足:github
服务器广泛有不间断供电的需求:若是要作代码服务器,那么持续供电是必要条件,选择专用服务器,必须配套 UPS
,或者用一台自带电池的笔记本,也是一个不错的选择。shell
服务器的磁盘空间需求,若是你的代码服务器只容许上传文本文件,不容许保存可执行文件,那么只须要极少的空间。安全
若是在硬件昂贵稀少的几十年前,人们不太可能用笔记原本作这种事情,可是如今不少人都有不止一台台式机,不止一台笔记本,尤为是几年前购买的一些上网本,性能有限,速度迟缓,基本处于闲置状态,笔者就有3台相似的上网本,用来作代码服务器刚恰好。服务器
龙芯小本 8089D
偏偏能够做为一台代码服务器来真正发挥威力,一方面它自带电池,没必要担忧突然停电致使的系统错误(Linux系统运行时一旦停电可能会对系统形成损坏,有时可用命令 fsck 修复,有时甚至须要重装系统),事实上任意一款电池没有彻底废掉的上网本均可以改造为一个代码仓库服务器。另外一方面就是它的性能偏低,用它作编译、作图形处理都比较慢,可是作代码服务器就足够了。ssh
理论上来讲,Windows
和 Linux
均可以设置为代码服务器, Windows
只须要安装额外的 ssh
服务器软件来启动 ssh
服务,同时安装专门为 Windows
准备的 git shell
也能够把代码服务器配置起来,不过鉴于我在配置 freeSSHd
、posSSH
、WinSSHD
上折腾了半天-虽然配置好了-也能够从 Linux
登录到 Windows
上的 ssh
-就是有一些乱码什么的,就不建议拿 Windows
当代码服务器了。性能
下面介绍如何在 Debian
上进行配置。fetch
个人 8089D
安装了 Debian 7
,一些基本软件都安装好了,还须要安装以下软件和服务:git
url
能够经过以下命令来安装:.net
aptitude install git
系统启动时自带启动 sshd
服务,能够经过 sysv-rc-conf
来查看
新增一个 ssh 用户
sudo adduser git
按照提示设置好该用户的密码
建立 git
仓库目录
sudo mkdir /opt/github/mytest.git
把该目录的属主设置为该用户
sudo chown -R git:git /opt/github/mytest.git
切换到该用户
su git
把该目录初始化为裸仓库
cd /opt/github/mytest.git git init --bare
OK,如今服务端的配置所有完成
接下来就是客户端的配置操做,Windows
和 Linux
Unix
OSX
均可以做为客户端,只要可以运行 ssh
和 git
,就能够当客户端来用.
这里须要知道 8089D 的 ip
,用命令 ifconfig
能够看到,假设咱们 8089D
的 ip
为192.168.99.233
有两种方法,一种使用默认的远程仓库名 origin
,另外一种本身指定名字。
先说方法一,比较简单,直接使用 git clone
命令就能够在本地创建一个远程仓库的拷贝,默认的远程仓库名字设置为 origin
,本地目录设为 mytest1
,详细命令以下:
git clone ssh://git@192.168.99.233/opt/github/mytest.git mytest1
按照提示要求输入ssh
用户 git
的密码,而后就把位于龙芯小本上的 mytest.git
克隆到本地的 mytest1
目录下,这时进入目录 .\mytest1\
使用 git remote -v
命令查看当前的远程仓库,以下:
Air:loongson admin$ cd mytest1/ Air:mytest1 admin$ ls -al total 0 drwxr-xr-x 3 admin staff 102 6 8 00:36 . drwxr-xr-x 3 admin staff 102 6 8 00:36 .. drwxr-xr-x 10 admin staff 340 6 8 00:37 .git Air:mytest1 admin$ git remote -v origin ssh://git@192.168.99.233/opt/github/mytest.git (fetch) origin ssh://git@192.168.99.233/opt/github/mytest.git (push) Air:mytest1 admin$
再说方法2,首先创建一个空目录 mytest2
,而后进入这个目录使用 git init
命令把这个目录初始化,最后使用 git remote add
命令为其手动增长远程仓库,详细命令以下:
Air:loongson admin$ mkdir mytest2 Air:loongson admin$ cd mytest2 Air:mytest2 admin$ ls -al total 0 drwxr-xr-x 3 admin staff 102 6 8 00:41 . drwxr-xr-x 4 admin staff 136 6 8 00:41 .. drwxr-xr-x 10 admin staff 340 6 8 00:42 .git Air:mytest2 admin$ git init Initialized empty Git repository in /Users/admin/GitHub/loongson/mytest2/.git/
再经过命令 git remote add
增长名为 l8089D
的远程仓库
Air:mytest2 admin$ git remote add l8089D ssh://git@192.168.99.233/opt/github/mytest.git
接着用命令 git remote -v
查看一下,会显示全部的远程仓库名和对应的url
Air:mytest2 admin$ git remote -v l8089D ssh://git@192.168.99.233/opt/github/mytest.git (fetch) l8089D ssh://git@192.168.99.233/opt/github/mytest.git (push) Air:mytest2 admin$
如今就基本完工了。
为了保证不上传可执行文件浪费空间,咱们须要在工做目录下新增一个 .gitignore
配置文件,命令以下:
touch ./.gitignore vi ./.gitignore
并对其进行配置,有两种配置方式,一种是开放模式,一种是保守模式。
简单说,开放模式就是默认提交全部文件,要在配置文件里指出不提交哪些文件,假设咱们的可执行文件格式为 *.o
,咱们不但愿提交全部的可执行文件,那么配置文件内容以下:
*.o
保守模式偏偏相反,它默认不提交全部文件,只提交在配置文件里列出的那些文件,假设咱们须要提交全部的 *.c
和 *.h
文件,那么配置文件内容以下:
!*.c !*.h
以上是针对文件的过滤设置,也能够针对目录进行设置,以下。
开放模式,不提交目录 /opt/github/mytest1/others/
,配置文件 .gitignore
内容以下:
/opt/github/mytest1/others/
保守模式,只提交目录 /opt/github/
,配置文件 .gitignore
内容以下:
!/opt/github/
目前的配置方式每次 push
代码时都须要输入用户 git
的密码,是由于咱们没有配置 ssh 的公钥和私钥,配置一下很简单,这样每次就没必要输密码了,只要把客户端使用 ssh
的用户的公钥收集起来,它们存放在 id_rsa.pub
文件中,添加到 8089D
的用户 git
的鉴权名单里便可,也就是 8089D
上的 /home/git/.ssh/authorized_keys
文件里,每行一个,若是只有一个用户,那么直接把 id_rsa.pub
拷贝为 authorized_keys
就行了。
剩下的就是从客户端工做目录把代码同步到服务端
git add . git commit -m ""
若是在 mytest1
操做,命令以下:
git push origin master
若是在 mytest2
操做,命令以下:
git push l8089D master
其余的操做都同样。
通过上述配置,如今你的 8089D
龙芯小本就能够作为一个代码服务器投入使用了,
做者:FreeBlues 版本:20150608 连接:http://my.oschina.net/freeblues/blog/464075