① 安装 Git
Linux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git
服务器端:
#yum install -y git
安装完后,查看 Git 版本
[root@localhost ~]# git --version git version 1.7.1
版本太低,用以下方法升级:
-
首先更新系统
yum -y update
更新完成之后有6.5变成6.7了
-
安装依赖的包
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
-
下载git源码并解压
$ wget https://github.com/git/git/archive/v2.3.0.zip
$ unzip v2.3.0.zip
$ cd git-2.3.0
-
编译安装:
将其安装在“/usr/local/git”目录下。
make prefix=/usr/local/git all
make prefix=/usr/local/git install
因为服务器时间不对编译的过程中报错如下图,使用ntpdate自动校正系统时间。报错“Writing perl.mak for Git make[2]: *** [perl.mak] Error 1”,请重启apache服务,service httpd restart。
-
编译完成之后使用git --version 查看git版本,居然还是1.7.1,这是因为它默认使用了"/usr/bin"下的git。
你可以用下面的命令查看git所在的路径:
$ whereis git
git: /usr/bin/git /usr/local/git /usr/share/man/man1/git.1.gz
-
我们要把编译安装的git路径放到环境变量里,让它替换"/usr/bin"下的git。为此我们可以修改“/etc/profile”文件(或者/etc/bashrc文件)。
vim /etc/profile
然后在文件的最后一行,添加下面的内容,然后保存退出。
export PATH=/usr/local/git/bin:$PATH
-
不想重启系统,使用source命令立即生效
source /etc/profile
-
然后再次使用git --version 查看git版本,发现输出2.3.0,表明安装成功。
② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码
[root@localhost home]# id git id: git:无此用户 [root@localhost home]# useradd git [root@localhost home]# passwd git
③ 服务器端创建 Git 仓库
设置 /home/data/git/gittest.git 为 Git 仓库
然后把 Git 仓库的 owner 修改为 git
[root@localhost home]# mkdir -p data/git [root@localhost home]# git init data/git Initialized empty Git repository in /home/data/git/gittest.git/ [root@localhost home]# cd data/git [root@localhost git]# chown -R git:git gittest.git/
客户机 origin url 填上 git@Ip:/路径/路径就可以了
在此处可以在客户机也就是我的本地克隆到代码,但新增文件发现提交不上去,翻译了一下看错误是什么权限啥的。
这是由于git默认拒绝了push操作,需要进行设置,修改.git/config添加如下代码:
根据提示执行命令解决问题 :
[root@localhost git]# git config receive.denyCurrentBranch ignore
ok!可以正常推送了
git init git --bare init 其他人说 前者建立的仓库 pull的时候没法看到 更新的代码,必须得使用git reset --hard才能看到push后的内容.
但用后者用git命令会报不在work tree错误。怎么解决还没找到