在服务器和本地部署Git,实现本地代码推送到服务器

我在部署git遇到一堆错误,心情很糟糕,特此记录方便后面再次处理不必麻烦

Linux安装git

linux自带git版本版本很老了,服务器才1.8.3,官方都是2.14了,安装最新的只能通过下载源码来进行安装

首先卸载掉系统的git
yum remove git
然后安装依赖库

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker

https://github.com/git/git/releases
或者
wget https://github.com/git/git/archive/v2.14.0-rc1.tar.gz
创建一个新目录,在home下面创建的,然后解压到当前目录

cd /home
mkdir git
tar -xzvf v2.14.0-rc1.tar.gz

开始编译安装git,先进入解压的目录,将git安装到/usr/local目录下

cd v2.14.0-rc1
make prefix=/usr/local/git all
make prefix=/usr/local/git install

添加环境变量

echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc

到现在git就安装好了
查看版本号
git --version

windows安装git

这是官方地址

https://git-for-windows.github.io/

地址下载国内下载困难,用迅雷这些连服务器都连不上

使用国内下载地址

https://github.com/waylau/git-for-win

windows如何安装软件...省略不知道多少字

在服务器上部署git

添加一个用户用来专门处理git

useradd -m git #git是用户名
passwd git #配置git的密码

使用刚刚用来解压git的目录来作为接收代码的仓库

cd /home/git
chown git:git git #将这个目录的属主和属组都改为刚刚新建的用户git
su git #切换用户到git用户
git init #初始化为git仓库
git config receive.denyCurrentBranch ignore #让仓库接收代码提交

至此服务端就部署完成了;

本地部署git

将你需要提交的目录初始化

进入CMD也可以使用快捷,此处使用cmd操作
移动盘符
f:
进入目录
cd /git
初始化
git init
提交更改
git commit -a -m "init commit"
-a和-m都是commit命令的参数。-a表示全部;-m表示这次提交的描述信息,内容一般比较精简,直接在后面用双引号附上描述信息表明本次修改的作用即可
列出更改情况
git status
添加跟踪文件
git add index.php
此处可以填写多个文件以空格分开,填写目录会将目录下的所有文件跟踪,使用git add -A将全部跟踪
再次列出更改情况就有了
git status
配置用户名和邮箱
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱地址"
创建提交服务器
git remote add server git@192.168.1.10:/home/git/.git
server是自定的服务器名,git是用于登录的用户名,使用git remote可以查看所有添加的服务器,git remote remove [服务器名] 这个用来删除你不需要的服务器
推送到服务器
git push server master
server是上面自定的服务器名,master是分支,git版本管理的概念.
输入密码推送成功,结果应该类似:
git@192.168.1.10's password:
Counting objects: 40, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (38/38), done.
Writing objects: 100% (40/40), 864.37 KiB | 0 bytes/s, done.
Total 40 (delta 5), reused 0 (delta 0)
To 192.168.1.10:/home/git/.git
* [new branch] master -> master
服务器更新
cd /home/git
git update-server-info

空目录无法推送

遇到的错误

错误提示:


bash: git-receive-pack: command not found
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.

解决办法
登录服务器root

ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack

1 分享 二维码
分类:代码笔记
标签:
还没有评论


在此输入评论..
0/100