由于众所周知的原因,github的访问不是很顺畅,如果需要拉一些内容下来,用nas做一个镜像server,不断定时去更新,需要的时候再从nas的git server去clone就会是一个比较经济的办法了。
群晖设定
安装GitServer
在群晖NAS的套件中心安装GitServer
创建Git用户(组),eg, git_local
开启SSH登录权限
控制面板->终端机与SNMP->启动SSH功能
开启home
控制面板->用户与群组->高级设置->启动家目录服务
Root密码修改(Optional)
sudo -s
synouser --setpw root xxxxxxx
Crontab使用
sudo -s
vim /etc/crontab #编辑加入定时信息并退出
synoservice --restart crond (before DSM7.0)
synosystemctl restart crond #DSM7.0
构建Git项目本地mirror server
创建一个git用户和用户组,设置git home目录的权限为git,条件允许,可以考虑把git用户加入到sudo用户(Ubuntu Only, 群晖不需要)
sudo adduser git
sudo chown -R git:git /home/git/
sudo usrmod -a -G sudo git
创建一个gitmirror目录,用来做镜像中转目录
sudo mkdir /volume1/gitmirror
生成pub key,并添加到bitbucket/github (optional step,群晖不需要)
ssh-keygen -t rsa -C "your_email@example.com"
cat ~/.ssh/id_rsa.pub
使用git --mirror将项目克隆到本地
cd /volume1/gitmirror; git clone --mirror git://w1.fi/srv/git/hostap.git
创建 local 仓库
mkdir -p /volume1/Gitserver/hostap.git
cd /volume1/Gitserver/hostap.git; git init --bare
设置本地的repo
cd /volume1/gitmirror/hostap.git; git remote set-url --push origin git_local@127.0.0.1:/volume1/Gitserver/hostap.git
git push --mirror
更新远程server到mirror
cd /volume1l/gitmirror/hostap.git; git remote update
设置脚本更新远端
编写脚本更新远端,local执行看是否有需要添加可信git用户,按照提示复制粘贴即可。
参考脚本auto_update_git.sh:
#!/bin/sh
MAC80211_GIT_PATH="/volume1/gitmirror/mac80211.git"
cd $MAC80211_GIT_PATH
git remote update
HOSTAPD_GIT_PATH="/volume1/gitmirror/hostap.git"
cd $HOSTAPD_GIT_PATH
git remote update
使用crontab自动更新远端
crontab -e (ubuntu,如果是群晖参考群晖crontab使用)
加入一下一行,表示每10分钟执行一次更新脚本
*/10 * * * * /volume1/gitmirror/auto_update_git.sh
客户端clone之后,如果需要提交到远端而不是local repos,需要set push url(Optionabl)
git remote set-url --push origin git://w1.fi/srv/git/hostap.git
修改权限使得git_local账户能从客户端clone镜像server的code
sudo chown -R git:git /usr/local/gitmirror
sudo chown -R git:git /usr/local/repos
附录
一些开源项目的git地址
Hostapd:
git://w1.fi/srv/git/hostap.git
mac80211 kernel:
git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
客戶端使用参考命令
git clone git@192.168.11.105:/volume1/gitmirror/hostap.git文章来源:https://www.toymoban.com/news/detail-571675.html
一些问题
git clone hostapd.git 的问题
“warning: remoteHEAD refers to nonexistent ref, unable to checkout.”文章来源地址https://www.toymoban.com/news/detail-571675.html
git show-ref
# no refs of "refs/head/branch_name"
git branch -a
git checkout remotes/origin/main
git checkout -b remotes/origin/main (switch to specified branch)
git branch -m remotes/origin/main main (rename the local branch)
git branch --set-upstream-to=origin/main main (set the target merge branch)
到了这里,关于群晖Nas构建Github镜像服务器(ubuntu系统可参考)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!