1、备用下载
GIT的官方地址下载太慢,自己在csdn放了一个包含 git 及 tortoisegit 及 相关汉化包的文件备用:
https://download.youkuaiyun.com/download/onebird_lmx/10516818
2、保存文件不能过多
GIT 不能文件太多,我尝试23W的文件加入版本库,每次操作都要等。。等。。 等。。。,后来就放弃了,最终还是仅仅对代码部分进行提交,其他配套文件就只能忽略了
3、在centos中安装 git服务器
1) 先 yum 安装 git:
yum install git
2)在centos中添加git相关账号并调整设置:
添加git用户:adduser git
设置git密码:passwd git
建立git目录及认证文件:
cd /home/git
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
cd /home
chown -R git:git git
4、获取key
在需要连接服务器的人这边获取key:
ssh-keygen -t rsa -C "your_email"
该命令会产生两个文件: id_rsa对应私钥,id_rsa.pub对应公钥。
将id_rsa.pub中的内容写到服务器的authorized_keys文件中。
如果有多个客户端,那么在authorized_keys文件中,一行保存一个客户端的公钥
5、在centos中建立仓库
最重要的是修改目录的属组!!
cd /home
mkdir gitrepo
chown git:git gitrepo
cd gitrepo
git init --bare sample.git
chown -R git:git sample.git
**上面创建目录结构为:/home/gitrepo/sample.git
6、连接git url
如果不是默认的ssh端口(22),需要用ssh连接方式:ssh://git@IP:端口/路径,如 ssh://git@123.123.123.123:1234/home/gitrepo/sample.git
7、git保存web文件,实现一旦git更新就自动更新相应的web文件
在git仓库目录,如 /home/gitrepo,其项目库目录下面,如 /home/gitrepo/sample.git :
cd hooks
vi post-receive
#!/bin/sh
#author: embbnux
#Blog of Embbnux: http://www.embbnux.com
IS_BARE=$(git rev-parse --is-bare-repository)
if [ -z "$IS_BARE" ]; then
echo >&2 "fatal: post-receive: IS_NOT_BARE"
exit 1
fi
unset GIT_DIR
DeployPath="/var/www/html/gonghaoxinxi"
echo "==============================================="
cd $DeployPath
echo "deploying the test web"
git fetch --all
git reset --hard origin/master
time=`date`
echo "web server pull at webserver at time: $time."
echo "================================================"
说明上面:
– DeployPath 是web文件目录,切记,这个目录必须是从这个git仓库用 git clone 下来的,否则可能出错!
– 切记git用户必须有修改web文件目录的权限(要么同一个用户,要么同一个组,确保授权)
– post-receive必须有运行权限(chmod +x post-receive)
8、非空目录下 git clone 项目
进入非空目录,假设是 /dir/jk1
– git clone --no-checkout https://git.oschina.net/jankerli/test.git tmp
– mv tmp/.git .
– rmdir tmp
– git reset --hard HEAD