如何搭建你自己的 Git 服务器呢?

简介: 假如您既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。

一、申请一个免费云服务器,本文以此服务器为例,创建用户Git,用来管理运行Git服务
$useradd git

二、配置无密码SSH登陆
用命令:ssh-keygen -t rsa -b 4096 -C “comment to identify the key” 生成密钥

完成之后,在.ssh目录下,我们可以看到id_rsa和id_rsa.pub文件,id_rsa.pub为公钥,我们通过命令scp将id_rsa.pub拷贝到Git服务器上。

在Git服务器上我们首先查看/home/git/.ssh目录下是否存在authorized_keys文件,如果没有,可以通过touch authorized_keys创建此文件。

authorized_keys创建完成后,将拷贝过来的公钥id_rsa.pub的内容追加到authorized_keys中,注意是追加到此文件中,可以使用命令

$cat id_rsa.pub >> /home/git/.ssh/authorized_keys

完成后,我们就可以使用命令ssh Git服务器即可完成无密码登陆。

三、安装Git
1、通过命令yum install git,安装Git
屏幕截图 2023-10-14 000829.png

四、建立Git仓库的存储目录

  1. mkdir -p /git/gramess.git
    image.png

  2. chown -R git:git /git
    屏幕截图 2023-10-14 001039.png

五、添加Git提交用户

git config --global user.name "ming"
git config --global user.email "ming@ming.com"

六、初始化服务器端仓库

初始化Git仓库

cd /git/gramess.git
git init

添加新文件

echo readme > README

将所有新增文件加入到

git add -A

提交所有文件

git commit -m "init"

添加远程服务器地址

git remote add origin ssh://git@192.168.10.8/git/ming.git

将本地git代码同步到服务器master分支中

git push origin master
chown -R git:git /git

通过以上的步骤我们就完成了git服务器的搭建,完成搭建后,我们需要了解一下与git服务器交互过程中所用到命令

主要命令有git clone、git remote、git fetch、git pull、git push等
如遇到不能推送到远端请在远端git仓库的 .git/config 文件末尾添加

[receive]
denyCurrentBranch = ignore

附:
1、将本地git代码同步到服务器master分支中
git push origin master

如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略(将当前分支推送到origin主机的对应分支)
git push origin

还有一种情况,就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要使用–all选项(将所有本地分支都推送到origin主机)
git push --all origin

2、从服务器上克隆一份完整、最新的源代码
git clone ssh://git@192.168.10.8/git/ming.git ming.me

执行该命令可将服务器端的代码同步到本地。

当其他同时上传代码到服务器后,我们必须使用git pull命令将服务器上的代码同步到本地。

当我们准备提交代码时,必须先执行git pull命令
git pull # 服务器端的代码同步到本地

其他命令

切换到某个分支

git checkout develop

创建新分支并切换到該分支

git checkout -b develop

将本地develop分支推送到远端

git push --set-upstream origin develop

或者使用

git push origin develop

查看当前所在的分支

git branch

查看当前所在的分支包括远程分支

git branch -a

查看远程分支

git branch -r

删除某个远程分支

git push origin --delete [branch_name]

检出远程分支

git checkout orgin/[branch_name]

撤回 commit 或者回滚到某个版本

git commit --soft HEAD #撤销提交 撤销提交后代码会回到 git add 状态
git commit --hard HEAD #代码回滚
————————————————

相关文章
|
3月前
|
存储 Java 开发工具
WinServer服务器上搭建Git代码库
本文介绍如何在WinServer服务器上搭建Git代码库。
74 0
|
5月前
|
开发工具 git
服务器定时自动拉取Git仓库代码自动部署
服务器定时自动拉取Git仓库代码自动部署
130 0
|
2月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
131 0
|
4月前
|
存储 Linux 网络安全
Git - Centos7下安装GitLab服务器
Git - Centos7下安装GitLab服务器
97 1
|
6月前
|
Linux 网络安全 开发工具
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
|
8月前
|
缓存 网络协议 Linux
CentOS 服务器 git clone下载加速(下载过慢或超时)
CentOS 服务器 git clone下载加速(下载过慢或超时)
1085 0
|
11月前
|
算法 安全 Linux
Git 分布式版本控制工具 05SSH免登陆:如何使用SSH如何免密登录服务器~
SSH是目前比较可靠的专为远程登录会话和其他网络服务提供安全的协议。不同主机之间在进行通信时,一般都是需要输入密码进行验证, ssh免密码之后,只要通过指定主机地址和端口号就可以实现不同的计算机之间访问时,不需要密码实现直接访问。ssh免密码登录主要采用算法有:对称加密算法和非对称加密算法。
137 0
|
11月前
|
IDE Linux 开发工具
git clone 从GitHub上下载项目到服务器上运行+创建虚拟环境
可先进入需要放置文件的路径之下
958 0
|
开发工具 git Python
Git:Python代码开发到服务器上测试实践
Git:Python代码开发到服务器上测试实践
137 0
|
安全 Ubuntu Shell
Git - 自定义Git之搭建Git服务器
Git - 自定义Git之搭建Git服务器
289 0