如这个问题描述的一样,
场景是这样的,我本地有以下项目:
a类项目:a1、a2、a3、a4;
b类项目:b1、b2、b3、b4;
c类项目:c1、c2、c3、c4;
现在我想把这三类项目都传到github,上传有个几个目的
- 方便日后在线查看代码,基本只看不写
- 方便看到每个类都有哪些项目
- 后期可能会拉代码下来看commit信息
另外,因为仓库比较多,想上传的省事点,不想逐个项目上传。
在尝试了一些办法:
- 把a1、a2、a3、a4直接放在目录a下做成一个git仓库上传,发现在github不能直接查看具体> 项目,是一个链接的形式,点击之后没有反应
sub module, sourcetree的方法都不能满足
最终的解决办法是
创建大文件夹,归拢项目
以a类项目为例,新建一个文件夹a,然后把工程放入文件夹a,像下面这样
a/
a1/
a2/
a3/
a4/
给项目的.git文件改名
我们给a1、a2、a3、a4这些项目仓库里的.git文件换个名字,改成git。默认情况.git文件夹是不显示的,可以在命令行改。
mv .git git
我们之所以这么做,是因为:
a1本身是一个仓库,我们把文件夹a做成一个仓库的话,推到远端之后就会出现a1目录打不开的情况,所以这里我们需要处理下这些项目仓库。
因为git是通过.git目录里的文件来记录仓库的信息的。我们既要保留这些信息,但是还想他不是个仓库,那么我们只要给.git改个名字就行了,比如改成git目录,这样上传的时候a1就不是个仓库了(是一个普通的文件夹),当我们要看a1代码的时候把他拉下来,把git目录改回.git,a1就又是一个仓库了,可以查看commit信息。
这样对a1、a2、a3、a4都做这样的操作就处理好了。
初始化目录a,提交
把目录a做成一个仓库,提交到远端就ok了。
其他情况
如果你的a1、a2、a3、a4仓库都已经提交到远端了,只是想有个归拢入口的话,那么你可以用github的收藏夹功能。
操作如下:
- 我们新建一个收藏夹
- star自己需要归拢的仓库,并且选择放入的收藏夹
- 点击对应的收藏夹就可以看到自己归拢的仓库
这样相当于我们用收藏夹创建了一个分类,替代了原来的文件夹功能。
只不过这个方案有一个缺点,就是这个收藏夹是所有人可见的(只是收藏夹所有人可见,私有的仓库还是看不到的),所以在文件夹起名以及添加描述的时候需要留意。
IT极限技术分享汇