用树莓派搭建Git私有服务器

20140215225209554-0

话说当年linux内核开发者林纳斯·托瓦兹(Linus Torvalds)为了更好的管理Linux内核开发创下git以来,时至今日,当下最流行的『版本管理系统』已非git莫属了! 笔者私下认为,git相比其他的版本管理系统(csv, svn等)来,最大的方便莫过于分支(branch)的操作十分便捷,但项目开发分支如何管理,萝卜白菜各有所爱,见仁见智。笔者因工作需要,经常要参与国际化团队的协作开发,git乃是必不可缺之利器之一。

最近我利用树莓派为我所有的Git仓库创建了一个Git私有服务器。我花费了一些时间来使每件事情正确工作,但现在它已经能跑起来了。

安装Git

首先你需要在树莓派上安装Git.

sudo apt-get install wget git-core

这将会安装Git服务器和必要的客户端软件。

安装SSH

如果你还没有安装SSH,通过以下命令安装它:

sudo apt-get install ssh

通过以下命令启动它:

sudo /etc/init.d/ssh start

现在ssh已经运行起来了,但是一旦你重启树莓派,你还需要重新执行一遍上面命令。你可以通过执行一次下面的命令来解决这个问题:

sudo update-rc.d ssh defaults

当你重启树莓派,SSH应该能够自动启动了。你可以看看能不能通过SSH连接到树莓派,在你的Windows机器上使用Putty(Mac用户需要寻找替代的SSH客户端)。
20140215225055610
在HostName文本框里输入树莓派的IP地址。通过以下命令找到你的树莓派IP:

/sbin/ifconfig

找到inet addr:后面的就是IP。

改变主机名

这步不是必须的,但是我强烈推荐如果你正在,计划使用多台树莓派设备。

sudo leafpad /etc/hostname

输入你想要的主机名,然后保存文件。我的主机名是”gitpi”。
接着,输入下面的命令:

sudo leafpad /etc/hosts

替换所有”raspberrypi”为你上一步输入的新主机名。然后,重启你的树莓派

添加一个”Git”用户和组

接着我们来创建一个”Git”用户和用户组。注意/home/git是这个例子里我使用的文件夹。如果你想使用别的路径,替换下面命令里的”/home/git”。

adduser --system --shell /bin/bash --gecos 'git version control by pi' --group --home /home/git git

接着是更改密码:

passwd git

你的”git”用户现在有了一个新密码。现在尝试切换用户,你将会看到现在的终端提示用户名和主机为”git@gitpi”。你可以通过下面的命令切换用户:

su git

增加一个空的Git仓库(Git Repository)

我们现在来增加一个空的Git仓库.
首先更改目录到你存储git的路径下。

cd /home/git

为你的仓库创建一个文件夹,并移动进去,然后初始化并清空仓库。
注意我现在使用的是”git”用户。这个用户具有/home/git目录的控制权。


mkdir test.git

cd test.git

git --bare init

Push你的代码到Pi上

最终,我们会把代码push到树莓派上。首先,更改路径到你之前初始化的git仓库(或初始化一个新的)。

加入一个新的远程主机(*你的IP地址没有中括号)

git remote add pi git@[your IP]:/home/git/test.git

现在你要做的就是add你的代码,commit然后push。


git add .

git commit -am "Initial"

git push pi master

如果你得到了一个类似这样的消息”authenticity of host …”只需要输入”yes”然后继续就可以了。
理想情况下,如果一切正常,你的Git仓库已经搭建在你的树莓派上了。

如果你想要测试一下,试着clone你的仓库到你的Windows机器上。首先更改路径到你希望存储clone的地方(一个空文件夹),然后通过命令行(或git bash),运行:

git clone git@[your IP]:/home/git/test.git
这是一篇发布于 10年 前的文章,其中的信息可能已经有所发展或是发生改变,请了解。


4 评论

  1. $ git push ubuntu master
    git@172.20.10.2: Permission denied (publickey,password).
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.
    出现这种情况怎么办呢

1 Trackback / Pingback

  1. [TUT] Build Private Git Server with Raspberry Pi – xswxm

发表评论

你的邮件地址不会公开


*