1、GIT的官方地址下载太慢,自己在csdn放了一个包含 git 及 tortoisegit 及 相关汉化包的文件备用:https://download.csdn.net/download/onebird_lmx/10516818
2、GIT 不能文件太多,我尝试23W的文件加入版本库,每次操作都要等。。等。。 等。。。,后来就放弃了,最终还是仅仅对代码部分进行提交,配套文件就只能忽略了
3、在centos中安装 git服务器:
- 先 yum 安装 git:yum install 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 - 在需要连接服务器的人这边获取key:ssh-keygen -t rsa -C "your_email"
该命令会产生两个文件: id_rsa对应私钥,id_rsa.pub对应公钥。
将id_rsa.pub中的内容写到服务器的authorized_keys文件中。
如果有多个客户端,那么在authorized_keys文件中,一行保存一个客户端的公钥
4、在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
5、连接git url:如果不是默认的ssh端口(22),需要用ssh连接方式:ssh://git@IP:端口/路径,如 ssh://git@123.123.123.123:1234/home/gitrepo/sample.git
6、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)
7、如何在非空目录下 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