[原创]Git版本控制系统安装使用简明手册(网站开发用)

一、Linux服务器端

1、创建git账号

mkdir -p /myweb/user
groupadd git
useradd git -g git -m -s /usr/bin/git-shell -b /myweb/user

2、安装git

yum install git

3、创建git空版本库

cd /myweb
git init --bare git

4、创建或迁移网站目录

git clone /myweb/git /myweb/www
cp /原代码目录/* /myweb/www/
cd /myweb/www
git add *
git commit -m "创建项目"
git push origin master

5、设置网站钩子(提交代码到git版本库后,自动拉取到网站目录)

cd /myweb/git/hooks
mv post-update.sample post-update
sed -i "s/exec/#exec/" post-update
echo "unset \$(git rev-parse --local-env-vars)" >> post-update
echo "cd /myweb/www" >> post-update
echo "git pull" >> post-update

6、修改git库及网站目录权限

chown git:git /myweb/git -R
chown git:git /myweb/www -R

7、创建登录密钥(也可以在Windows中用puttygen来创建)

ssh-keygen -C mygitserver -f mykey

出现提示后,如果需要密码,输入密码,如是不需要密码,回车即可,再次确认后,密钥对创建成功。其中当前目录下的mykey(你的私钥)文件请一定要妥善保管,千万不能留在服务器上,下载保存后从服务器中删除。公钥添加到服务器中。

mkdir /myweb/user/git/.ssh
mv mykey.pub /myweb/user/git/.ssh/authorized_keys
chown git:git /myweb/user/git/.ssh -R
chmod 700 /myweb/user/git/.ssh
chmod 600 /myweb/user/git/.ssh/authorized_keys

8、卸载或停用selinux(虽然不建议,但对于新手来说,selinux确实很令人困扰,卸载是最简单的办法)

yum remove selinux*

几个注意事项:

  • 以上操作中的git用户名、mykey文件名、myweb目录、/myweb/www网站目录等,均可根据自己习惯用其他名称。
  • 网站服务nginx/apache及php的运行用户,设置成git会更加方便,不会有权限问题(安全性要求高的网站不在此考虑)。
  • 如在服务器的网站目录/data/www下运行git pull/push命令,一定要在运行完命令之后,再次更改git库及网站目录权属,具体命令见上面步骤6。

二、Git客户端使用方法

1、安装git客户端

Windows系统下的图形客户端,建议用TortoiseGit,注意中文包需要单独下载。

2、将前面生成的私钥导入到客户端

  • Linux系统、Windows系统的Git Bash方式(命令行操作):
mkdir ~/.ssh
cp mykey ~/.ssh/id_rsa
  • Windows系统中TortoiseGit图形界面(两种密钥使用方法):

方式一:安装时默认选择的是putty方式的密钥,需要用安装TortoiseGit时带的puttygen工具,将mykey文件导入,再点击“Save private key”导出为ppk文件。使用TortoiseGit时,导入此密钥文件即可。

方式二:安装时手动选择OpenSSH方式的密钥,按上面Git Bash的方式导入mykey密钥即可在TortoiseGit中自动调用上述密钥。

3、从服务器克隆项目

  • Linux系统、Windows系统的Git Bash方式(命令行操作):
git clone ssh://git@服务器IP:端口号/myweb/git /本地路径
  • Windows系统中TortoiseGit图形界面:

在文件夹中右键:克隆,地址同上。

小常识:密钥

密钥登录是Linux服务器管理中常用的一种登录方式。密钥为一对,分公钥和私钥,公钥放在服务器上,私钥妥善保存在自己电脑中。类似于生活中的锁和钥匙,用自己的锁锁住的门,只有自己手里的钥匙才能打开。不用担心,计算机生成的密钥对不会有相同的情况,这种机率只存在于理论中。

发表评论

电子邮件地址不会被公开。