搭建远程git仓库

本文介绍了从使用SVN转向Git的过程。包括在Ubuntu系统中安装配置Git,通过SSH密钥认证实现安全连接,以及如何搭建和使用Git远程仓库。
部署运行你感兴趣的模型镜像

自进入这个行业以来,所在的每一家公司都是用的svn管理的项目源码的。

某天,突发奇想,平时在GitHub上“看”了不少的开源项目,很好奇git的使用,想着就学学git的使用方法。

百度一搜git,http://t.cn/RK0tLXB  ,这个是我看的教程,放出链接的原因,绝对不是因为我技术不到位┑( ̄Д  ̄)┍


言归正传

首先,你需要一个带ubuntu系统远程服务器,当然,如果你穷的跟我一样的话,可以用虚拟机玩●﹏●


由于我习惯上用xshell,所以先查出该机器ip【ifconfig】


我使用的是ubuntu,安装git【sudo apt-get install git】




这个时候使用命令【git --version】查看当前git是否安装好

下一步就是为服务器创建一个单独的git用户【sudo adduser git】



然后你需要在本机!!!(不是虚拟机哈)创建公钥和密钥,我使用的是xshell生成的


一直下一步下一步,到下图,密钥名称随便写, 密码随意,我懒,就不写密码了●▽●



我也不知道这个有没有啥隐私的,反正不能让你们看到我电脑里的小姐姐(☆_☆)

点保存文件,这个保存出来的文件就是你的公钥(fire.pub)

看到这个界面,你应该知道肯定是xshell把【sudo ssh-keygen -t rsa】(用这个命令,第一呢是懒得去创建.ssh文件夹,第二,也是怕有什么关联性的东西)


看箭头的方向,可以看到你的密钥文件目录


新建文件authorized_keys文件,并将fire.pub文件公钥复制到authorized_keys里




下面开始创建git远程库


我选择的目录是【home/fire/git】


命令【sudo git init --bare test.git】

此时就创建了一个空的git远程仓库,然后就可以看到此时的远程仓库的位置是【/home/fire/git/test.git】

下面就是在本机使用git进行clone项目了,git的安装我就懒得说了,直接开始clone项目

在你想要的目录地址,点鼠标右键,选择Git Bash Here,然后输入命令【git clone git@192.168.112.142:/home/fire/git/test.git】--------->【git clone ( linux用户 ) @ ( linux Ip )  : ( 仓库地址 )】


然后可以看到,test目录已经出来了

下面开始测试一下,git仓库是否可用,新建文件   1.txt


在文件夹test里,点右键,选择 Git Bash Here 


使用git status -----git add 1.txt-----git commit -m "test",查看git状态,并添加1.txt文件,并上传到本地库

使用git push进行项目推送到远程仓库


然后你就会发现,哈哈,报错了,这就尴尬了啊

去百度了下报错信息remote: error: insufficient permission for adding an object to repository database ./objects

解决办法就是git用户的权限



去xshell操作git服务器【sudo chown -R git:git test.git】



然后就推送成功了,美滋滋哟┗|`O′|┛ 嗷~~

好了,下面去另一文件夹下,clone一下这个项目,看看有没有1.txt文件

【 git clone git@192.168.112.142:/home/fire/git/test.git】

然后就可以发现,1.txt出现了


END

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

<think> 我们参考了多个引用内容,特别是引用[2]中提到了gitweb的搭建方法,引用[3]提到了创建裸仓库,引用[5]提到了添加README.html等。 用户的需求是在Linux系统上搭建带有web页面的远程git仓库。常见的方案是使用gitweb或cgit等工具来提供web界面。 根据引用[2],我们可以使用gitweb来搭建。以下是具体步骤: 1. 安装必要的软件:apache2, gitweb 2. 配置gitweb:编辑/etc/gitweb.conf,设置仓库的根目录 3. 配置apache:将gitweb的cgi脚本配置到apache中 4. 创建git仓库(裸仓库)并放在仓库根目录下 5. 通过浏览器访问gitweb 另外,引用[3]提到创建裸仓库的方法,这对于远程仓库是必要的。 因此,我们给出以下步骤: 步骤1:安装软件 在Ubuntu系统上,执行: ```bash sudo apt-get update sudo apt-get install apache2 git gitweb ``` 步骤2:配置gitweb 编辑配置文件`/etc/gitweb.conf`,设置仓库根目录(例如:`/home/git/repositories`): ```bash sudo vim /etc/gitweb.conf ``` 在文件中设置: ```perl $projectroot = "/home/git/repositories"; ``` 步骤3:配置Apache 默认情况下,安装gitweb后,Apache的配置可能已经创建。如果没有,可以创建一个新的虚拟主机或使用默认配置。 通常,gitweb的cgi脚本位于`/usr/share/gitweb`。我们需要配置Apache以允许访问cgi脚本。 创建一个Apache配置文件(例如:gitweb.conf): ```bash sudo vim /etc/apache2/conf-available/gitweb.conf ``` 添加以下内容: ```apache Alias /gitweb /usr/share/gitweb <Directory /usr/share/gitweb> Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch AllowOverride All Require all granted AddHandler cgi-script .cgi DirectoryIndex gitweb.cgi </Directory> ``` 然后启用配置并重启Apache: ```bash sudo a2enconf gitweb sudo systemctl restart apache2 ``` 步骤4:创建仓库 创建仓库根目录并设置权限(假设使用git用户): ```bash sudo adduser git # 如果还没有git用户 sudo mkdir -p /home/git/repositories sudo chown -R git:git /home/git/repositories ``` 创建一个裸仓库(例如:myproject.git): ```bash cd /home/git/repositories sudo -u git git init --bare myproject.git ``` 为了让gitweb显示仓库描述,可以编辑仓库中的description文件: ```bash echo "My Project" > myproject.git/description ``` 步骤5:访问gitweb 在浏览器中访问:`http://your_server_ip/gitweb` 或 `http://your_server_domain/gitweb` 另外,引用[5]提到可以在仓库根目录创建README.html文件,用于在gitweb的仓库页面显示自定义内容。 注意:如果仓库列表为空,请检查仓库目录的权限,确保apache用户(www-data)有读取权限(至少需要x权限进入目录和r权限读取文件)。可以将git用户加入www-data组,并设置目录权限为755,文件权限为644。 此外,还可以考虑使用其他web界面工具,如cgitgitlab、gogs等,但用户要求的是基础方案,gitweb是轻量级的选择。 相关问题: 1. 如何为gitweb配置多个仓库? 2. 如何设置gitweb的访问权限控制? 3. 除了gitweb,还有哪些常用的Git web界面工具? </think> 在Linux系统上搭建带Web页面的远程Git仓库,推荐使用**GitWeb**方案。以下是详细步骤: --- ### 步骤1:安装必要软件 ```bash sudo apt update sudo apt install apache2 git gitweb fcgiwrap ``` --- ### 步骤2:配置Git仓库 1. 创建裸仓库(以`myrepo.git`为例): ```bash sudo mkdir -p /var/www/git sudo git init --bare /var/www/git/myrepo.git sudo chown -R www-data:www-data /var/www/git # 授权给Apache用户 ``` 2. 编辑仓库描述文件: ```bash echo "My Project Repository" | sudo tee /var/www/git/myrepo.git/description ``` --- ### 步骤3:配置GitWeb 1. 修改GitWeb配置文件: ```bash sudo vim /etc/gitweb.conf ``` 修改以下参数: ```perl $projectroot = "/var/www/git"; # 仓库根目录 $site_name = "My Git Server"; # 站点名称 ``` 2. 配置Apache: ```bash sudo vim /etc/apache2/conf-available/gitweb.conf ``` 添加内容: ```apache Alias /gitweb /usr/share/gitweb <Directory /usr/share/gitweb> Options +FollowSymLinks +ExecCGI AddHandler cgi-script .cgi DirectoryIndex gitweb.cgi Require all granted </Directory> ``` 3. 启用配置: ```bash sudo a2enconf gitweb sudo systemctl reload apache2 ``` --- ### 步骤4:访问Web界面 通过浏览器访问: `http://your-server-ip/gitweb` ![GitWeb界面示例](https://git-scm.com/book/en/v2/images/git-instaweb.png) *图:GitWeb默认界面[^2]* --- ### 可选增强功能 1. **添加仓库说明**: 在仓库目录创建`README.html`,内容会显示在Web页面[^5]: ```bash echo "<h3>项目说明</h3>" | sudo tee /var/www/git/myrepo.git/README.html ``` 2. **多仓库管理**: 通过符号链接添加其他仓库[^2]: ```bash sudo ln -s /path/to/other-repo.git /var/www/git/other-repo.git ``` 3. **HTTPS安全访问**(使用Let's Encrypt): ```bash sudo apt install certbot python3-certbot-apache sudo certbot --apache -d your-domain.com ``` --- ### 验证操作 ```bash # 测试远程仓库推送 git remote add origin http://your-server-ip/git/myrepo.git git push origin master ``` > **注意**:若出现权限问题,检查`/var/www/git`目录权限是否为`www-data`用户[^3]。 --- ### 替代方案对比 | 方案 | 复杂度 | 功能丰富度 | 资源占用 | |------------|--------|------------|----------| | **GitWeb** | ★☆☆☆☆ | ★★☆☆☆ | 极低 | | Gitea | ★★★☆☆ | ★★★★☆ | 中等 | | GitLab | ★★★★★ | ★★★★★ | 高 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值