跳转至

搭建git仓库服务器

1.准备工作

准备一台linux服务器。

2.安装git

服务器上如果没有安装git,执行以下语句安装

sudo apt install git
sudo adduser git 
创建git用户
getent passwd git 
确认 `git` 用户是否存在,以及它的 UID/GID、家目录、默认 shell 等信息
sudo chsh -s /usr/bin/git-shell git 
让 git`用户不能获得普通交互式 shell(如 bash),而只能执行 git-shell 允许的命令(常用于限制账号用途,只用于 Git/SSH)
sudo mkdir -p /home/git/.ssh 
创建ssh秘钥文件夹
sudo chown git:git /home/git/.ssh
确保这个目录归 `git` 用户管理,SSH 才能正常读取/写入相关文件(尤其是 `authorized_keys`)
在客户端上 执行 ssh-keygen -t ed25519 
生成的公钥粘贴到服务器/home/git/.ssh/authorized_keys文件内容

sudo nano /home/git/.ssh/authorized_keys

sudo chown git:git /home/git/.ssh/authorized_keys
把 authorized_keys 文件的所有者和所属组改为 git,保证只有 git 用户可以操作。
sudo chmod 600 /home/git/.ssh/authorized_keys
保证 authorized_keys 只有 git 用户能读写,其他人不能访问,这是 SSH 安全要求。
sudo chmod 700 /home/git/.ssh
保证 .ssh 目录只有 git 用户能进入和操作,增加 SSH 安全性。

git config --global user.email "you@example.com" 添加邮箱
git config --global user.name "Your Name"
添加名字  后续commit时系统就记录是谁提交的了。每次执行git log就可以看得到
sudo -u git mkdir -p /home/git/repos/myproject.git
创建第一个裸仓库
sudo -u git git init --bare /home/git/repos/myproject.git
初始化仓库

3.在客户机上clone

在客户机上安装git。 如果是Windows系统,需要下载gitforWindows 软件包 如果是linux 执行命令 sudo apt install git 进行安装 安装完毕后clone

git clone ssh://yourserver:port/home/git/repos/myproject.git
cd .\myproject\

4.如果本地已经有仓库,如何推到服务器上呢

第一步,还是要在服务器上创建裸仓库
sudo -u git mkdir -p /home/git/repos/myproject.git
创建第一个裸仓库
sudo -u git git init --bare /home/git/repos/myproject.git
初始化仓库

第二步,
本地仓库绑定远程仓库 git remote add origin ssh://git@www.880821.xyz:2200/home/git/repos/graindata.git

验证绑定  git remote -v
重命名本地仓库 git branch -m master main
设置上传分支 git push --set-upstream origin main
上传同步 git push


5.常用命令

git branch 查看本地分支
  git branch -a 显示远程分支
  git branch dev 创建分支dev
  git checkout -b <name> / git switch -c <name>
  新建并立即切换

切换分支:git switch <name>

创建+切换分支:git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

删除分支git branch -d <name>删除已合并的分支,`-D` 强制删除



git push 推送到服务器