自己安装一个轻量级的git服务端,仅仅作为代码维护,尤其适合个人代码管理。毕竟代码的版本管理是很有必要的。
这里把git服务端部署在centos系统里,部署完成后可以通过命令行推拉代码,进行版本和用户管理。
- # 安装源
- > yum install -y epel-release
-
- # 如果是centos6,则:
- > rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm
- # 如果是centos7,则:
- > #rpm -ivh https://centos7.iuscommunity.org/ius-release.rpm
-
- # 安装git
- > yum list git2u
- > yum install -y git2u
- # 确认git安装成功
- > git --version

- # 添加用户git
- > sudo useradd -r -s /usr/bin/git-shell -c 'git version control' -d /home/git git
-
- # 添加用户git的主目录
- > mkdir -p /home/git
- > chown git:git /home/git
-
- # 设置密码
- > passwd git
配置用户:
- # 编辑文件 /etc/passwd
- > vi /etc/passwd
# 找到行:
git:x:1001:1001:,,,:/home/git:/bin/bash
# 替换/bin/bash为 /usr/bin/git-shell,最终类似于:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
- # 进入用户主目录
- > cd /home/git
-
- # 创建.ssh目录
- > mkdir /home/git/.ssh
-
- # 配置 /home/git/.ssh 目录权限
- > chmod 700 /home/git/.ssh
- # 配置 /home/git/.ssh/authorized_keys 文件权限
- > touch /home/git/.ssh/authorized_keys
- > chmod 644 /home/git/.ssh/authorized_keys
-
- # 配置用户主目录
- > cd /home
- > chown -R git:git /home/git
经过前面三个步骤,服务端已经配置完成,假设服务端的域名是git.demo.com,当然也可以使用IP。
官方网站:Git
如果是linux平台,打开shell;如果是windows平台,打开git bash:
- # ssh-keygen -t rsa -C "your-email or user"
- > ssh-keygen -t rsa -C "abc@qq.com"
这将在~/.ssh/下生成id_rsa和id_rsa.pub两个文件,对应公私钥,把公钥文件id_rsa.pub的内容添加到服务端的授权文件中:
> vi /home/git/.ssh/authorized_keys
- # 进入用户主目录
- > cd /home/git
-
- # 新建仓库 demo.git
- > mkdir /home/git/demo.git
- > cd /home/git/demo.git
-
- # 初始化仓库 demo.git
- > git --bare init
-
- # 配置仓库权限
- > chown -R git:git /home/git/demo.git
如果本地是全新环境,直接从服务端clone项目:
- # git clone ssh://用户@远程仓库服务器:端口/仓库目录
- > git clone ssh://git@git.demo.com:22/home/git/demo.git
如果本地已经有代码了,则可以添加远程仓库:
- # 添加远程仓库
- # git remote add 名称 用户@远程仓库服务器:端口/仓库地址
- > git remote add origin git@git.demo.com:22/home/git/demo.git
-
- # 移除远程仓库
- # git remote remove 远程仓库名称
- > git remote remove origin
-
- # 修改远程仓库地址
- # git remote set-url 远程仓库名称 ssh://用户@远程仓库服务器:端口/仓库地址
- > git remote set-url origin ssh://git@git.demo.com:22/home/git/demo.git
-
- # 查看commit历史
- > git log --pretty=oneline --graph --abbrev-commit