为什么要搭建git私服
我们为什么要搭建Git私服?我觉得主要有以下几点原因:
- 备份:我们的重要文件夹(如工作文档、课件、简历等)需要备份以防电脑丢失或损坏。
- 同步:需要在个人电脑和工作电脑之间同步私人资料,而不依赖微信等工具。
- 安全:GitHub和Gitee提供私人仓库,但存放敏感信息(如密码、密钥)可能存在安全风险。
- 速度:GitHub和Gitee存在限速问题,上传和下载大文件(如PDF、PPT)速度较慢。
总之,搭建Git私服可以完美的解决这些问题,实现方便、安全的文件管理
。
搭建过程
步骤1 下载git
- 首先,我的云服务器上按照的系统镜像是ubuntu的20.0.4版本的。阿里云镜像中的ubuntu是不自带git的。所以需要你自己手动下载
sudo apt update
sudo apt install git
- 如果报错,则需要先更新包索引:
sudo apt update
- 安装完成之后,可以使用以下命令验证 Git 是否正确安装:
git --version
- 该命令将显示已安装的 Git 版本。
步骤二 服务器端设置Git账户
- 在root用户下创建一个git的linux账户
sudo adduser --gecos "" git
sudo usermod -aG sudo git
- 切换成git账户,进行后面的操作
su - git
步骤三 服务器端密钥管理
先确认自己是否在git账户下 ,输入命令pwd 查看自己的路径是否是 /home/git
- 运行以下命令创建一个新的SSH密钥对(在提示时,您可以按回车选择默认设置,也可以选择输入密码以提高安全性):
ssh-keygen
- 在创建密钥对后,将生成的公钥添加到authorized_keys文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 更改authorized_keys文件的权限,以保护其内容:
chmod 600 ~/.ssh/authorized_keys
chmod 700 /home/git/.ssh
- 查看配置的密钥是否成功
- 不是在服务器端也就是你的云服务器,而是你自己的电脑上,也就是客户端,输入如下命令
ssh git@自己云服务器的ip
- 因为我之前创建git账号的时候设置了密码,所以我这里也要输入密码,但只要能登录上就行。就说明服务器端密 钥配置成功了
步骤四 服务器端部署Git仓库(裸仓库)
请确认自己现在在git账号下
- 首先创建git目录并进入git目录
mkdir git && cd git
创建一个git的裸仓库(world)并且进入这个仓库
mkdir world.git && cd world.git
初始化我们的world仓库
git init --bare
步骤五 客户端连接远程仓库
-
我们在自己的电脑上创建一个文件夹 也叫做world吧
-
其实这里命名是随意的,但是我们为了和git服务端的仓库名称保持同步。 这样更直观我们操作的是哪一个仓库。
mkdir world
cd world
- 进入world文件,并初始化操作
cd world
git init
- 在world目录上创建一个测试文件,并且将其添加到git版本管理中
touch test
git add test
git commit -m "add test file"
- 将次仓库和远端仓库同步
git remote add origin git@git服务器端的ip:git/world.git
git push -u origin master
-
此时这个test测试文件就已经提交到我们的git远端私服上了
-
但是注意,这个远程仓库,也就是我的服务器上创建的那个仓库里并没有这个test文件,因为这个远程仓库是裸仓库,裸仓库是一个没有工作目录的 Git 仓库。它只包含版本控制相关的元数据和对象数据库,但不包含任何实际的工作文件。在这种情况下,你只会看到 Git 的内部结构,如 branches、config、HEAD、hooks、objects 和 refs 等文件和文件夹。所以你看不到test文件
步骤6 创建一个新的非裸仓库(有工作目录的仓库,在服务器端上)
确保自己现在所在路径为:/home/git/git
- 在服务器上,创建一个新的非裸仓库(有工作目录的仓库),例如:
mkdir world_working
cd world_working
git init
- 将裸仓库作为远程仓库添加到新创建的非裸仓库:
git remote add origin /path/to/your/bare/repository/world.git
- 请将 /path/to/your/bare/repository 替换为实际的裸仓库路径(/home/git/git/world.git)
从远程裸仓库中拉取文件:
git pull origin master
- 这样,你就可以在新的非裸仓库的工作目录中看到 test 文件了。
总结
我现在目前所掌握的玩法,就是,把自己从网上下载好的文件或者资料,放入自己本机仓库的这个目录下
/Users/zoom/world (我的电脑是Mac)
- 然后输入命令:
git add 你的文件的名字
git commit -m "add 你的文件名字 file"
git push -u origin master
- 然后登录你的git私服,进入到你的非裸仓库中,也就是这个仓库(world_working),再输入命令:
git pull origin master
-
就可以把你本机的文件上传到你git私服里面去了,速度贼快!
-
最后的最后,如果你觉得我的这篇文章写的不错的话,请给我一个赞与收藏,关注我,我会继续给大家带来更多更优质的干货内容
。