一、如何仅下载git仓库的某个文件夹
我们常常需要在github上下载一些源码,但由于有的项目库本身比较大,或者我们本身的网速比较慢,经常会下载失败或等待比较长的时间,这个时候我们会想能不能只下载特定文件夹的内容呢?答案肯定是可以的,下面介绍如何操作。
逐条输入以下的命令(请忽略行号):
1 mkdir myfolder && cd myfolder
2 git init
3 git remote add -f origin https://github.com/loyinglin/GPUImage.git
4 git config core.sparsecheckout true
5 echo Tutorial-08 >> .git/info/sparse-checkout
6 git pull origin master
解释一下:
第1行:本地建立一个文件夹
第3行:"https://github.com/loyinglin/GPUImage.git" 是你要下载的库的地址
第4行:启用过滤功能
第5行:将Tutorial-08这个关键字加入过滤列表,如果有其他关键字可以多次运行该命令,关键字是文件夹或文件皆可
第6行:拉取代码
二、如何迁移git仓库
由于公司的git服务器要搬迁,需要将原来的git仓库迁移到新的地址,但是不能丢失原先的所有提交记录和分支信息。
三个步骤解决这个问题
git clone --bare http://旧域名/分组/仓库名称.git
cd 仓库名称.git
git push --mirror http://新域名/新分组/新仓库名称.git
三、误删本地文件后Git从远程仓库重新获取【待完成】
四、分支的克隆、查看和切换
1、克隆整个项目(包含了所有分支)
git clone https://github.com/iview/iview-admin.git
git clone 默认会把远程仓库整个给clone下来,但只会在本地默认创建一个master分支
2、仅克隆某个分支
git clone -b template https://github.com/iview/iview-admin.git //clone template分支
3、查看分支
git branch -a //查看所有分支
git branch -r //查看远程分支
举例:
cd iview-admin //切换到项目目录
git branch -a //列出所有分支名称如下: * 号表示当前分支
- dev
remotes/origin/HEAD -> origin/dev
remotes/origin/desktop
remotes/origin/dev
remotes/origin/gh-pages
remotes/origin/master
remotes/origin/template
说明: origin/template, origin是远程仓库名,template是远程仓库的一个分支,由上结果可以看出,远程仓库origin还有desktop、dev、gh-pages、template、master等分支。
接下来,可以在本地新建分支并与远程仓库的分支进行关联了
git checkout -b template origin/template // 作用是checkout远程仓库origin的分支template,在本地起名为template分支,并切换到本地的template分支
4、切换分支
git checkout dev // 切换到dev分支
5、创建和删除分支
git branch xxx // 创建分支(基于当前分支创建)
git branch -d xxx //删除本地分支