### Github免费账户使用”私有库“
原创 2013年09月02日
根据Github的免费策略,用户提交的内容是必须公开,这有利于促进开源社区发展的。
但总有些时候,我们想利用Github来存储一点私人的东西,可是作为免费用户不能建立私有的库,这时可以利用一下这个项目:https://github.com/Anchor89/GithubHub
项目里面其实只有一个文件,就是一个`Bash`脚本,所以目前只支持 `linux` 或者是 `cygwin`。`windows` 用户可以考虑安装`cygwin`,它的原理是这样,既然我可以在`Github`上存放任何内容,那么我自然也可以存放另外一个`Git repository`了,只要对`repos`进行加密就好了!这就是`GithubHub`的原理。
使用的方法是这样的:
1. 首先在你的Github上建立一个名字为`root`的项目。确保本机上安装了`openssl`和`tar`
2. 在你本机上建立一个文件夹,假设叫`some_dir`吧,把`GithubHub`里面的那个`github.sh` 给复制进来。
3. 然后在`some_dir`里`git clone`你在`Github`上的`root`项目,这样就会在`some_dir`中出现一个`root`文件夹。
4. 打开终端,运行‘`github.sh init`’。这个命令会在当前文件夹中创建加密用的密钥和一个名字为`leaf`的文件夹。
5. 进入`leaf`文件夹,用'`git init --bare`'新建一个本地的裸git库,假设名字叫`secret`。
6. 随便换到其他一个目录下,`git clone path/some_dir/leaf/secret`,就建立了裸库的工作目录了,然后在这个目录下像平常一样做一些修改,提交,推送。这时的推送(push)是将更改的内容`push`到本地`leaf/secret`的裸git库中,如果要更新到`github`上,还需要下面一步。
7. 调用`github.sh push secret`,其中`secret`是你想`push`到`github`上的库的名字,这个命令会把leaf文件夹下的secret文件夹打包压缩,然后放到`root`文件夹下。然后在`root`下执行`git add secret && git commit .. & git push`。至此,你的内容就被加密存放到`Github`上`root`库下了。
8. 当你想从`Github`上获取加密的文件时,请用`github.sh pull secret`。这个命令会将`root`的内容`pull`到本地,然后把`root`下的`secret`解密解压到`leaf`文件夹下成为`secret`文件夹,之后从本机的其他文件夹里继续`pull`就可以了。
关于密钥文件:
加密和解密的文件时对应且不可重复生成的,所以这两个密钥文件可要好好保存,一旦丢失话,就不能对已经存上去的内容解密了。如果想更换密钥话,请先保证leaf下都是最新的已解密git库,然后替换密钥文件,执行相应的github.sh命令就可以了。
- 目录
- 撤销
- Git reset
- Git revert
- Git reset 命令
- Git的撤消操作 - 重置, 签出和撤消
- 冲突
- 解决Git合并分支发生的冲突
- BASH
- 复制黏贴
- 教程
- 合并
- 合并提交
- 分支
- Gitee(码云)
- Github
- 免费私有库
- 本地仓库推送到github仓库
- 工具
- SourceTree
- 添加git-bash.exe到环境变量
- Git
- 安装
- 配置
- 命令行
- 10个技巧让开发者的Git水平迅速提升
- 3.2 Git 分支 - 分支的新建与合并
- 远程分支
- Git帮助
- Git帮助
- 显示命令帮助
- Git 命令
- 参数配置
- 还原至上次提交
- Git 操作命令
- Git tag
- Git 分支管理
- 认识分支
- 卖主分支
- 分支操作
- 本地仓库远程提交
- Git 分区
- 认识里程碑
- 忽略文件
- 已有项目
- 《Git权威指南》