在服务器上创建git仓库

1、在服务器上创建git仓库

选择一个创建文件夹的地方,这个地方不会将源码存放在这里,只用于版本控制

sh 复制代码
# 创建一个专门放置git的文件夹,也可以叫其它名
mkdir git  && cd git
# 创建自己项目的文件夹,文件夹后面要带 .git
mkdir my_object.git && cd my_object.git
# 初始化
git init --bare 

2、创建钩子

将会使用post-receive钩子,更多相关的信息可以参考官方文档。

进入到本地仓库里,使用命令

sh 复制代码
ls

3、编写post-receive

sh 复制代码
cd hooks  
vim post-receive  

在post-receive文件中加入以下需要同步的语句

sh 复制代码
#!/bin/sh
# 解释
git --work-tree=文件映射目录 --git-dir=本地创建的git目录,后面需要加.get checkout -f
# 示例
git --work-tree=/www/wwwroot/项目目录 --git-dir=/var/git/项目目录.git checkout -f

/www/wwwroot/项目目录:同步到你服务器哪个目录

/var/git/项目目录.git:仓库地址

4、创建用户并设置密码

sh 复制代码
# 敲完后回车
adduser 用户名
# 设置上面定义的用户,并设置密码。敲完命令回车,会让你输入密码
passwd 用户名

5、获取本地的ssh-rsa

如果这不不设置的话会每次push都会输入密码

这次命令输入在 本地进行

sh 复制代码
#配置一个本地git的用户名 
git config --global user.name "xxx"
#配置本地用户的邮箱地址 
git config --global user.email "xxx@qq.com" 
#邮箱就是你上面设置的那个邮箱地址
ssh-keygen -t rsa -C xxx@qq.com 

之后查看公钥,目录在C:/Users/用户名/.ssh/id_rsa.pub

sh 复制代码
# 如果使用gitbash,或者Linux系统
cat ~/.ssh/id_rsa.pub

6、本地的ssh公钥设置到服务器仓库

sh 复制代码
# 切到服务器gits目录下
cd /home/gits
# 创建.ssh目录
mkdir .ssh
cd .ssh

之后创建authorized_keys文件

sh 复制代码
# 设置.ssh 和 authorized_keys的所有者为gits
chown -R gits:gits .ssh

7、设置仓库目录权限

将git仓库目录(/www/wwwroot/你的目录)设成可读写的(777)

sh 复制代码
# 这个是你之前映射的目录地址
cd /www/wwwroot/你的目录
chmod 777 -R * 

需要在映射目录创建文件夹,不然无法写入

sh 复制代码
# 创建完目录后,设置权限
chmod 777 -R * 

(这一步想当重要,必须是777,否则将无法写入文件)

8、本地项目推送

sh 复制代码
git remote add origin ssh://gits@服务器地址:22/var/git/你的目录.git

之后使用git命令就好了

  1. 初始化本地 Git 仓库

    git init

  2. 添加文件到暂存区

    git add .

  3. 提交更改

    git commit -m "Initial commit"

  4. 关联远程 Git 仓库

    git remote add origin https://github.com/your-username/your-repository.git

  5. 推送更改到远程仓库

    git push -u origin master

9、设置多仓库同时推送

例如,设置第二条origin

sh 复制代码
  origin git@github.com:morethink/programming.git

之后就可以同时推送了

删除分支

sh 复制代码
# 删除 仓库名 origin
git remote rm origin

同时推送

例如,设置第二条origin

sh 复制代码
  origin git@github.com:morethink/programming.git

之后就可以同时推送了

删除分支

sh 复制代码
# 删除 仓库名 origin
git remote rm origin
相关推荐
牢姐与蒯3 小时前
一点小碎片——每个线程独有的东西——上下文+栈
linux·运维·服务器
codigger3 小时前
Git 三区域模型:把 add、commit、reset、merge 一次讲透
git·github·编程·编程语言
水饺编程4 小时前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
0+1114 小时前
Linux --进程间关系和守护进程
linux·运维·服务器
idanzk4 小时前
Git 推送 GitHub 报 SSL_READ /src refspec main 不匹配 完整踩坑记录
git·github·ssl
程序猿老A4 小时前
GPU云服务器怎么安装AI
运维·服务器·人工智能
Ruiery4 小时前
Linux 6.6内核 CPU 深度解析(八):percpu 变量 — 每个 CPU 一份数据,无锁访问
linux·运维·服务器
程序猿老A5 小时前
云服务器怎么配置视频存储?
运维·服务器·音视频
Ivanqhz6 小时前
BURG(自底向上重写生成器)
服务器·数据库·人工智能·深度学习·算法
其实防守也摸鱼6 小时前
网安自测题:掌握核心知识点的实用练习
linux·运维·服务器·前端·数据库·sql·xss