- 仓库大小(仅Proxy):
<500M
- LFS支持:
未知
git clone
换成git mclone
,完事
cmd
powershell Invoke-Expression (New-Object Net.WebClient).DownloadString(\"https://gitee.com/liesauer/mclone/raw/v1.5.2/script/install.ps1\")
powershell
Invoke-Expression (New-Object Net.WebClient).DownloadString("https://gitee.com/liesauer/mclone/raw/v1.5.2/script/install.ps1")
curl
sudo bash -c "$(curl -fsSL https://gitee.com/liesauer/mclone/raw/v1.5.2/script/install.sh)"
wget
sudo bash -c "$(wget https://gitee.com/liesauer/mclone/raw/v1.5.2/script/install.sh -O -)"
cmd
powershell Invoke-Expression (New-Object Net.WebClient).DownloadString(\"https://gitee.com/liesauer/mclone/raw/v1.5.2/script/uninstall.ps1\")
powershell
Invoke-Expression (New-Object Net.WebClient).DownloadString("https://gitee.com/liesauer/mclone/raw/v1.5.2/script/uninstall.ps1")
curl
sudo bash -c "$(curl -fsSL https://gitee.com/liesauer/mclone/raw/v1.5.2/script/uninstall.sh)"
wget
sudo bash -c "$(wget https://gitee.com/liesauer/mclone/raw/v1.5.2/script/uninstall.sh -O -)"
使用第三方的代理直接拉取代码
注意:Mirror
不支持以SSH的方式拉取代码,mlcone
会自动将SSH替换为HTTPS
Mirror
指第三方代理,Proxy Server
指自部署的mclone后台。当同时设置Mirror
和Proxy Server
时,优先使用Mirror
的方式拉取代码。
--mirror
参数仅对当前次mclone生效。
git mclone --mirror cnpm https://github.com/username/repo.git
列举mclone支持的第三方代理
git mclone mirror list
目前已支持:
cnpm github.com.cnpmjs.org
fastgit hub.fastgit.org
gitclone gitclone.com
设置mclone的第三方代理,一次设置永久生效。
git mclone mirror set cnpm
删除mclone的第三方代理。
git mclone mirror del
将镜像仓库保存至名叫mirror
的remote
里,由于mclone的特殊性,仅使用Mirror时才能保留镜像仓库。
git mclone --save https://github.com/username/repo.git
保留后的remote
E:\Projects\mclone\mclone\nocode>git remote -v
mirror https://gitclone.com/github.com/kelseyhightower/nocode.git (fetch)
mirror https://gitclone.com/github.com/kelseyhightower/nocode.git (push)
origin [email protected]:kelseyhightower/nocode.git (fetch)
origin [email protected]:kelseyhightower/nocode.git (push)
SafeClone功能将尝试将预mclone的仓库设为私有镜像仓库,避免仓库泄露风险。
注意:需要部署服务器支持并启用SafeClone,使用SafeClone后,未经认证的客户端将无法拉取mclone镜像仓库。
若服务器支持SafeClone,使用--safe
参数后,服务器将尝试进行SafeClone。
git mclone --safe https://github.com/username/repo.git
若服务器支持SafeClone且默认启用SafeClone,使用--unsafe
参数后,服务器将尝试进行UnSafeClone。若服务器强制启用SafeClone,--unsafe
设置将无效。
git mclone --unsafe https://github.com/username/repo.git
自部署mclone后台后,需要将mclone的服务器地址切换为自己的代理服务器地址。
--proxy
参数仅对当前次mclone生效。
git mclone --proxy https://mclone.my.com https://github.com/username/repo.git
设置mclone的代理服务器地址,一次设置永久生效。
git mclone proxy set https://mclone.my.com
删除mclone的代理服务器地址,删除后将使用默认的mclone.nulastudio.org
服务器。
git mclone proxy del
先将仓库镜像到码云,再从码云拉取镜像仓库。
mclone项目后端代码使用了大量的模拟请求到码云来实现自动代理下载,如果后端代码开源,一旦码云进行了限制(应该不会这么小气8?但谁知道呢),如验证码等手段,将会对mclone造成致命打击,甚至可能会威胁到mclone的存在意义(如果每mclone一次都需要破解好几个验证码,这谁顶得住?)。但若有大量请求需要开源,可能会考虑开源。
已开源,见backend分支。
开源后就能。开源后必定有部署教程。
已开源,见backend分支。
- mclone的仓库较大(其实大仓库镜像也很快的说,超过15分钟一般来说都是第二种情况了)
- 码云目前镜像仓库采用的是队列的方式,也就是说当前如果有很多待同步的仓库的话,可能会卡很久,甚至半天都没轮到你的仓库同步,这个我们没有办法解决,只能等待或者过段时间再试。
提前声明:请不要使用mclone拉取私有仓库,如确有需要,也请不要拉取特别重要的私有仓库,因为有可能面临仓库泄露的风险!
自部署服务器并使用SafeClone请无视上面的Warning。
-
进入GitHub->Setting->Developer settings->Personal access tokens页面,点击Generate new token新增一个Token,Note填写
mclone
,勾选repo
,千万别勾别的!点击Generate token
即可添加一条Token。Token只显示一次,如有多次需要,可复制保存下来方便以后使用。 -
修改clone地址(仅支持HTTPS、不支持SSH),比如原地址为
https://github.com/username/private-repo.git
则修改为https://username:[email protected]/username/private-repo.git
,将地址中的token替换为你实际的token。示例:https://liesauer:[email protected]/liesauer/mclone-private-demo.git
-
使用新地址进行mclone。
- Token泄露(间接导致私有仓库泄露)
- 私有仓库泄露
当然这些风险都是将近不可能的,但仍需引起注意。
自部署服务器并使用SafeClone请无视上面的风险。
- 开发者盗用了Token
- 码云盗用了Token
- mclone后端服务器遭到攻击
- 接入了不安全的网络,导致被监控窃听
- mclone过程中发生异常(如不正常退出、码云服务器出现异常),导致无法清理仓库,从而导致码云上的镜像仓库处于持续公开状态。
自部署服务器并使用SafeClone请无视上面的第一点和第五点。
-
如果你的账号在mclone之后出现异常行为,进入GitHub->Setting->Developer settings->Personal access tokens页面,并点击
Delete
将之前添加的mclone Token删除,并请及时修改密码。 -
如果你怀疑你的仓库已泄露,请及时联系开发者沟通。
自部署服务器请自行解决。