Linux(server)端
以Ubuntu为例,使用apt安装git
//安装git
sudo apt-get install git
//查询git版本,本文git版本为2.27.0
git --version
通常我们会给server端新建一个名为git的用户,专门用于管理git相关操作
新建用户
//不用-m指令的话,不会在/home文件夹下创建相应的git用户文件目录
sudo useradd -m git
//设置密码
//此处设置密码,要求八位以上,且有字典检查,过于简单的密码不予通过
//通过修改/etc/security/pwquality.conf目录中的dictcheck
//将前面的#去掉,设置dictcheck=0即可关闭字典检查
sudo passwd git
//两次输入密码后,用户创建完成
在server端创建git仓库
//iven.git为任意名称,此文件夹即为给您的git仓库文件夹
//此处将git仓库建立在git用户目录下,也可以放在其他地方
sudo mkdir -p /home/git/iven.git
在/home/git目录下,执行git仓库初始化操作
//--bare为裸仓库初始化,相关解释可以参照以下连接
//https://www.jianshu.com/p/5b7ff91c5338
git init --bare ./iven.git
此时已经可以在Windows端上进行远程仓库拉取了,只不过目前该仓库是空的,仅有.git文件
在拉取git的过程中,使用任何在Linux中对git仓库有相关权限的用户,均可以成功拉取仓库
Windows拉取仓库演示
首先在Windows上安装git
安装完成后的git目录
此时在Windows中任意文件夹位置,点击鼠标右键,可以选择Git Bash Here,意思为,在此目录下,打开git bash终端
如果鼠标邮件没有Git Bash Here选项,也可以在git安装目录下,直接点击git-bash.exe,在终端中在cd进入您希望进入的目标目录
拉取Linux上的git仓库,首先进入Windows上目标目录文件夹,打开git bash,执行以下指令
//iven为用户名称,此处使用git或者其他任何在Linux中对git仓库有相关权限的用户,
//正确输入用户密码后,均可以成功clone到远程仓库
//192.168.244.132为您的远程仓库IP地址或者域名
git clone iven@192.168.244.132:/home/git/iven.git
clone成功后,此时应该可以在Windows该目录下看到.git文件(此时仓库中仅有这一个文件)
但是当我们想push到该仓库时候,使用其他账户,可能会出现以下情形
//如果本地项目已经配置过远程仓库的源,那么首先需要执行删除源操作
git remote remove origin
//再配置远程仓库源位置
//此处配置远程仓库源还是使用iven这一用户名
git remote add origin iven@192.168.244.132:/home/git/iven.git
//执行push操作
git push -u origin master
此时可能出现如下错误
这是由于iven.git仓库,在创建的时候,使用的root全选创建文件夹,所以该文件夹的权限为root级别,此时我们需要用到之前创建的git用户,对git用户为该文件夹提权
//git:git的意思是git用户组下面的git用户
sudo chown -R git:git /home/git/iven.git/
此时输入ll指令,查看iven.git文件夹的权限已经变成git
此时我们再执行push相关操作
//如果本地项目已经配置过远程仓库的源,那么首先需要执行删除源操作
git remote remove origin
//再配置远程仓库源位置
//将之前的iven用户改为git用户
git remote add origin git@192.168.244.132:/home/git/iven.git
//执行push操作
git push -u origin master
输入git用户密码后
此时可以正常push到远程Linux端的git仓库了