# autogit **Repository Path**: arife/autogit ## Basic Information - **Project Name**: autogit - **Description**: 服务器仅需安装了Git, 无需安装其它, 使用该脚本后即可实现一键部署. - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-12-06 - **Last Updated**: 2023-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## AutoGit ### 说明 使用git的钩子来实现远程推送后本地自动拉取同步, 进而实现自动部署的功能 ### 使用方法 1. 将此脚本放置Linux服务器任意目录, 同时赋予其可执行权限 2. 可修改脚本中部分变量为自己所需内容 3. 执行: `./AutoGit.sh myfirstproject` 4. 即会在GIT根目录中创建裸仓库, WEB根目录下同步最新项目文件 5. 自动为该仓库配置post-receive钩子,即 当有新的push时触发, 自动检出文件到对应WEB目录下 6. 并同时修改项目所属用户为www(或指定) 7. 至此, 自动同步完成 ### 注意事项 1. 需要自行配置ssh免密登录 2. 仅使用上述脚本是没有多用户功能的. 如需使用可自行搭配htpasswd使用 3. 目前仅自用使用, 未经多人项目验证可靠性. 但脚本仅仅是做了检出, 应该不会有问题 4. 如果需要使用http协议拉取提交, 也可参见我写过的一篇文章:[Nginx+Git+Http(Smart)手动搭建自己的Git服务器](https://blog.csdn.net/muyibu/article/details/109363138) 5. 目前仅满足了自己摆脱频繁修改提交文件时的困扰, 不需要再使用文件比对和ftp上传工具了, 但是硬性要求就是你有服务器的root权限了. 也就是说, 这个服务器你必须确认可以自己完全掌控. 6. 同样功能的实现其实还可以使用码云等平台的webhook来实现, 本脚本的编写只是为不想托管到云平台或希望更轻便,更快速,且小规模或个人的一种实现方案. 7. 如果在使用中发现问题, 欢迎留言反馈.