1. linux 在 github 下载 git 安装包 然后解压
wget https://github.com/git/git/archive/v2.21.0.tar.gz
tar -zxvf git.v2.21.0.tar.gz
2. 安装git
删除 默认安装的git
yum remove git
依赖
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel autoconf perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
make configure
./configure --prefix=/usr/local/git
make && make install
创建git 快捷方式 方便 任意地方调用
cp /usr/local/git/bin/git /usr/bin
查看gig 版本
git --version
安装git远程仓库
打开环境变量配置文件,命令 vim /etc/profile ,在底部加上Git相关配置信息:
PATH=$PATH:/usr/local/git/bin
上
export PATH
然后保存,退出
让该配置文件立即生效
source /etc/profile
创建用户组 和账号密码
groupadd shenzichen
useradd git
passwd git
创建 目录为 guanwang 的 仓库
记住 是你创建的当前目录
git init --bare guanwang
接下来将test.git的owner改为前面创建的git账户
给用户权限
chown -R git:git guanwang/
拥有者 和组
chown -R git:shenzichen guanwang
源码安装没有快捷方式
ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
客户端
在官网下载git 安装在自己电脑上
目前仓库是空值 所以 第一次上传项目 是主项目 master
git clone git@39.***.***.155:/home/git/guanwang/
提示 现在仓库是空 正常
libingqiang@39.98.200.155’s password:
warning: You appear to have cloned an empty repository.
如图 找一个有文件的目录
git init
git add .
git commit -am "first commit"
git remote add origin git@39.***.***.155:/home/git/guanwang/
git pullgit
git push -u -f origin master
提交到远程仓库,这个命令中的 -f 是强制推送,因为远程仓库只有初始化的文件,所以强制推送上去就行了,不加-f 会报当前分支没有远程分支 新,强制推送可以覆盖master,这样就完成了第一次提交的步骤
git add . 的时候经常出现
warning: LF will be replaced by CRLF in
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in 等 警告
在服务器端运行
//将设置中自动转换功能关闭
git config core.autocrlf false
#注意
禁用git用户的shell登录,防止用户通过Git用户登录服务器。编辑/etc/路径下的passwd文件,将文件后边的bash改成git-shell,即
将
qixiao❌1003:1003::/home/qixiao:/bin/bash
改成
qixiao❌1003:1003::/home/qixiao:/bin/git-shell
将用户qixiao添加到用户组gitgroup
usermod -G shenzichen git
修改git仓库所在目录/home/data/git/的用户组为gitgroup
chgrp -R gitgroup /home/git/guanwang/
写到这里,用户组对/home/data/git/路径只有读的权限,没有写的权限。上边的配置都没有什么问题,就这个权限折腾了一天,用户组默认的权限是没有写权限的,配置好不能上传代码,问题就在用户组的权限。
修改目录及其子文件的权限
chmod -R 654 /home/git/guanwang