网站首页 > 精选文章 正文
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的常用说明和使用方法。
猜你喜欢
- 2025-01-08 Vue+Element UI实现断点续传、分片上传、秒传
- 2025-01-08 职场上有些人就像AI,说不了几句话就丢失了上下文,无法沟通
- 2025-01-08 能跑源码,还提供数据集:这里有一个入门企业级验证码识别项目
- 2025-01-08 如何用 Netty 写一个高性能的分布式服务框架?
- 2025-01-08 cent6.5安装gitlab-ce最新版本-11.8.2并配置邮件服务
- 2025-01-08 Linux 6.13内核将初步支持iPhone 8/X等旧款苹果手机芯片
- 2025-01-08 基于gitlab适用于版本发布的git-flow团队开发协作规范
- 2025-01-08 掌握GitHub:一键入门指南
- 2025-01-08 可用AI写Java程序,甲骨文推出Oracle Code Assist编程助理
- 2025-01-08 DevOps: Code编码
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)