搭建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 推送到服务器