其实只要一个ssh服务+一个可用用户就可以了.修改脚本的sship,user,gitroot即可.
例如:
sship=127.0.0.1
user=root
gitroot=/var/cache/git
注意:使用的user必须对gitroot有读写权限.
代码: 全选
#!/bin/bash
###
### makegit written weiketing
###
##ssh server ip
sship=192.168.1.103
##Project name
pro_name="$1"
##set username
##must exist on ${sship}
user=wkt
###git repository root on ${sship}
###${user} must has write access to ${gitroot} on
gitroot='/tmp/git'
[ -z "$pro_name" ] && exit 1
server_str="ssh://${user}@${sship}/${gitroot}"
cat <<end|ssh ${user}@${sship} /bin/sh
mkdir -p ${gitroot}/${pro_name}.git
cd ${gitroot}/${pro_name}.git
git --bare init
exit
end
tmpdir=$(date +%Y_%m_%d_%H_%M_%S||echo ____)
mkdir -p /tmp/${tmpdir}/${pro_name}
cd /tmp/${tmpdir}/${pro_name}
git init
touch README
git add README
git commit -a -m "init"
git remote add origin ${server_str}/${pro_name}.git
git push origin master
rm -rf /tmp/${tmpdir}
echo -e "\n*****Get source use commandline:\ngit clone ${server_str}/${pro_name}.git"
代码: 全选
-0-$ bash /tmp/makegit gittest
wkt@192.168.1.103's password:
Initialized empty Git repository in /tmp/git/gittest.git/
Initialized empty Git repository in /tmp/2010_04_20_21_17_07/gittest/.git/
[master (root-commit) 5ab7a0e] init
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README
wkt@192.168.1.103's password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 200 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://wkt@192.168.1.103//tmp/git/gittest.git
* [new branch] master -> master
*****Get source use commandline:
git clone ssh://wkt@192.168.1.103//tmp/git/gittest.git
代码: 全选
-0-$ git clone ssh://wkt@192.168.1.103//tmp/git/gittest.git
Initialized empty Git repository in /tmp/gittest/.git/
wkt@192.168.1.103's password:
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.