Git是由Linux之父Linus Torvalds为了代替Linux内核开发中用的商业版本管理软件BitKeeper在半年内开发的自由版本管理软件。
(相关资料图)
其根本特点是去中心化、轻量级索引(commit)和分支管理,通过分布式保证可以高效、安全软件版本开发。
后续git托管平台在git基本功能基础上,开发在线Github、Gitlab和Gitee(国产)等托管平台,并增加了Fork和Pull Request(Gitlab中为Merge request
)等社交性质的协作功能,使得git迅速替代CVS、SVN等版本管理系统,成了目前版本管理的代名字。
Git基本功能中,使用最多,最频繁的功能必属git clone。
git clone
git clone顾名思义就是在当前位置克隆一个一模一样的源码仓库。当然默认情况下git clone除了克隆了一份源码git仓库数据(.git目录)外,还会默认执行git checkout在当前目录下生成一份main分支的最近commit的工作目录,即仓库中的文件和目录,这不是git源码仓库的一部分,这是git和SVN不同的之处之一(SVN指定分支然后检出一份代码出来)。
git clone的基本格式:
git clone <仓库的地址>
其中仓库地址,可以是远程地址,也可以是本地的目录,你可以从任何一个本地.git目录中clone出一份新的仓库出来。
远程仓库地址,可以支持https、http,ssh甚至可以ftp等其他协议,可以是公共托管平台的github、gitlab或者gitee地址,也可以是私有自建git服务平台地址。
比如我们clone一个虫虫gitlab的学习资料仓库gitlabFAQ,可以用
git clone https://gitee.com/ijz/gitlabFAQ
或者用ssh地址(需要先在平台添加你的ssh证书公钥)。
git clone git@gitee.com:ijz/gitlabFAQ.git
注意所有git操作都需要安装一个git客户端,在window下为git for windows
现在安装成功后,就可以使用各种git命令了,在任意目录下,右键打开“git bash here”,然后把上面的明知复制进去,会车执行:
这样就会在当前目录在你当前的工作目录中创建一个名为gitlabFAQ目录
目录下就包含了源码仓库.git目录和项目文件
指定分支
如果在特定的分支下,比如dev,clone时候可以通过-b选项指定特定分支:
git clone -b dev git@gitee.com:ijz/gitlabFAQ.git
这样在工作区生成的就是dev分支对应的文件。
克隆裸仓库
如果为了保存和备份等原因克隆仓库,可以通过--bare只克隆一个裸仓库,这样只会下载git对象,而不是在本地生成工作区,就可以节约一般的文件空间,和提高生成速度。
git clone --bare git@gitee.com:ijz/gitlabFAQ.git
这样生成的目录为gitlabFAQ.git,其中就只有git对象。
克隆深度
对于大型仓库,clone往往非常耗时,耗带宽,因为clone默认都是会获取到仓库所有历史记录中的所有快照。但是很多时候我们往往只需要最新源代码文件即可,为此我们可以使用git clone另一个选项--depth=n,n表示clone的深度,n=1表示只clone最新一次commit相关的git对象。
git clone --depth=1 git@gitee.com:ijz/gitlabFAQ.git
好了,以上就是git clone的常用说明和使用方法。
Copyright 2015-2022 亚洲知识产权网 版权所有 备案号:豫ICP备20022870号-9 联系邮箱:553 138 779@qq.com