centos7安装git
第一步,查找系统上是否存在git并卸载
rpm -qa | grep git
卸载命令
rpm -e --nodeps 文件名
第二步,安装编译环境
yum install asciidoc docbook2X xmlto texinfo sgml2xml autoconf openjade -y
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y
第三步,进入文件夹:
$ cd /home/git/download
下载软件:
$ wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz
解压软件:
$ tar -zxvf git-2.9.3.tar.gz
进入软件
$ cd git-2.9.3
编译指定安装路径
./configure --prefix=/home/git/git-ins
检测安装文件
make all doc
正式安装
make install install-doc install-html
第三步,配置git的环境变量
export GIT_HOME=/home/git/git-ins
export PATH=$PATH:$GIT_HOME/bin
第四步,git要能克隆需要修改/etc/passwd的文件
修改前:
git:x:1102:1006::/home/git:/bin/bash
修改后:
git:x:1102:1006::/home/git:/home/gitdir/git-ins/bin/git-shell
移动源文件中的所需目录
$ cp /home/git/download/git-2.9.3/git-shell-commands /home/git/.
第五步,查看版本
$ git --version
[root@iZov6plukkkysgZ git]# git --version
git version 2.9.3
成功
$ su git
git>
恭喜你不能用git用户登录了,别想太多,就是故意的
配置ssh请移步:https://segmentfault.com/a/1190000002645623
亲测成功,不成功,跟我没啥关系
问题集锦:
Counting objects: 3, done.
Writing objects: 100% (3/3), 208 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: insufficient permission for adding an object to repository database ./objects
remote: fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To 120.78.207.226:/home/git/work/test.git/
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'git@120.78.207.226:/home/git/work/test.git/'
主要的一句话是:远程:错误:将对象添加到存储库数据库的权限不足。/对象。
权限不足就赋权呗,赋权给谁,主要有仓库,.ssh
查看仓库的所有者是root还是git
$ ls -la
倘若是root
$ chown -R git:git 仓库
差不多解决了,如果没有解决
看一下 .ssh的权限,我的放在/home/git/.ssh下,于是乎
$ ls -la /home/git
倘若是root
$ chown -R git:git .ssh
$ chmod 700 .ssh
解决了吗,如果没有解决
看一下.ssh下是不是存在一个.authorized_keys.swp文件,我也不清楚这东西从哪来的,对于不应该存在的文件
$rm -rf .authorized_keys.swp
再次推送文件
$git push
解决