Git服务器搭建

总的来说,搭建本地Git服务器有两种方法,一是为每个使用Git服务的用户创建一个账户,二是创建一个公用的账户(账户名一般为git)供所有人使用。一般采用第二种方法,可以避免不必要的账户添加和读写权限设置。

1. 服务器端

安装ssh和git

sudo apt install openssh git

创建并配置git账户

sudo adduser git
sudo chsh -s /usr/bin/git-shell git

第二条命令将git用户的shell改为git-shell,以限制git用户的登录行为。借助一个名为git-shell的受限 shell 工具,你可以方便地将用户git的活动限制在与Git相关的范围内。

修改服务器代码存储目录的owner为git

假设代码存储目录为/opt/git

sudo chown -R git:git /opt/git

创建裸仓库, 裸仓库目录名以.git结尾

  • /opt/git下创建一个空仓库

    cd /opt/git
    mkdir project.git
    git init --bare
  • 从已有本地仓库创建一个空仓库

    git clone --bare project project.git
    scp -r project.git git@server:/opt/git

2. 本地

安装ssh和git

sudo apt install openssh git

安装完成后,首先要配置用户名及其email。

创建ssh key,并上传到服务器

ssh-keygen -t rsa -C "[email protected]"
ssh-copy-id -i git@server

email是上一步中git用户的email,密钥的密码可以为空。默认情况下,该命令在~/.ssh目录生成id_rsaid_rsa.pub两个文件,分别是当前用户的私钥和公钥。
第二个命令将公钥拷贝到服务器的git用户,保存在文件~/.ssh/authorized_keys中,当然,也可以手动追加到该文件的末尾,每个公钥另起一行。

测试

git clone git@server:/opt/git/project.git
cd project
echo README >> README
git add README
git commit -m "add README"
git push origin master

关联本次仓库和远程仓库

# in project directory
git remote add origin git@server:/opt/git/project.git
git push -u origin master

首先添加仓库关联,然后向master分支推送内容,-u参数在首次推送时使用,将本地分支和远程分支关联起来。

猜你喜欢

转载自www.cnblogs.com/whenyd/p/8980952.html