// 进入待创建Git资源库的文件目录下,如:项目/D/workspacejava/projectName就先进入这个目录下
// 初始化项目,并在项目根目录下创建一个.git的非空文件夹
git init
// 创建一个空文件
touch readme.txt
// 添加新文件到索引,注意点号代表所有文件,整句就是在当前目录下的所有文件
git add .
// 开始提交当前文件到本地库
git commit -m “注释说明”
// 创建一个ssh连接型远程资源库,其名称为:origin,执行后可看到 .git/config的内容已经发生改变
git remote add origin ssh://git@115.28.154.106/D002/workspacejava/ymcode/.git
// 删除origin资源库
git remote rm origin
// 显示远程资源库信息
git remote show origin
// 创建并push项目的master分支
git push origin master
// 打开ssh的22端口
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
service iptables restart
// 查看ssh是否可以连接
ssh git@115.28.154.106
// 设置一下权限
chown -R git:git /D002/workspacejava/ymcode
// 在客户端Eclipse中导入git项目
ssh://git@115.28.154.106/D002/workspacejava/ymcode/.git
/问题**********************************************/
当在eclipse中push代码到远程git时push后在服务端不能立即查看到最新的内容需要进入项目目录执行git reset --hard操作这样费时费力
现在有一个更加简单的方法可以解决这个问题:
首先进入项目跟目录下的.git/hooks目录,发现里面可能没有post-receive文件,这个文件是在成功推送后被调用的钩子
写上如下内容并保存
#!/bin/sh
GIT_WORK_TREE=
(
d
i
r
n
a
m
e
"
(dirname "
(dirname"PWD") git reset --hard
echo
(
d
i
r
n
a
m
e
"
(dirname "
(dirname"PWD")
echo “git reset --hard”
然后再在本地push即可在服务端实时看到更新内容
还有一个问题是:如果这样是否每一个项目都要配置,太麻烦了!放心有方法的:可以这样处理,别名一个ginit就是git init,以后进入项目初始化的时候直接用init ginit即可
alias ginit=‘git init && git config receive.denyCurrentBranch ignore && echo -e “#!/bin/sh\n\nGIT_WORK_TREE=$(dirname “$PWD”) git reset --hard\necho $(dirname “$PWD”)\necho “git reset --hard”” > $PWD/.git/hooks/post-receive && chmod +x $PWD/.git/hooks/post-receive’
查看所有alias内容
alias -p
// 删除ginit别名
unalias ginit
/综合从头到尾发布Git项目(除了定义ginit)************************/
cd /D002/workspacejava && mkdir aot-pro && cd /D002/workspacejava/aot-pro && ginit && touch readme.txt && git add . && git commit -m “first commit” && git remote add origin-aot-pro ssh://git@47.75.138.111/D002/workspacejava/aot-pro/.git && chown -R git:git /D002/workspacejava/aot-pro && git push origin-aot-pro master