Git是一款强大的版本控制系统,通过Git可以方便地管理代码的版本和协作开发。在使用Git时,常见的操作之一就是通过 git clone 命令将远程仓库克隆到本地。

本文将讨论 git clone --mirror git clone 两者之间的区别,以及它们在实际使用中的不同场景。

特性 git clone --mirror git clone
仓库类型 裸仓库 普通仓库
文件 包含所有历史记录和分支 只包含一个分支的历史记录
用途 作为其他仓库的镜像 作为独立的仓库使用

git clone --mirror

git clone --mirror 命令将从远程仓库创建一个裸仓库。裸仓库只包含存储库的历史记录和分支,而不包含任何工作副本文件。这使得裸仓库非常适合作为其他仓库的镜像,因为它们只包含必要的元数据,而不需要完整的克隆。

git clone --mirror <repository-url>

裸仓库的目录结构如下:

<repository-name>.git

git clone

git clone 命令将从远程仓库创建一个普通仓库。普通仓库包含存储库的历史记录、分支和工作副本文件。这使得普通仓库非常适合作为独立的仓库使用,因为它们包含所有必要的信息来管理代码库。

git clone <repository-url>

普通仓库的目录结构包含.git目录以及其他所有文件:

<repository-name>/
  .git/
  file1
  file2

获取到的文件有什么不同

使用git clone --mirror命令和git clone命令获取到的文件有一些明显的不同:

文件git clone --mirrorgit clone
.git目录存在存在
.gitignore不存在存在
README.md不存在存在
其他文件不存在存在
  • 对于git clone --mirror,只会克隆.git目录,不包含其他文件。

  • 对于git clone,会克隆整个工作副本,包含.git目录以及其他文件。

瘦身仓库如何选择

git clone 命令将克隆 .git 目录以及所有其他文件。这是因为普通仓库包含存储库的历史记录、分支和工作副本文件。

特性裸仓库普通仓库
大小较小较大
速度较快较慢
用途作为其他仓库的镜像作为独立的仓库使用

瘦身仓库通常使用裸仓库,因为裸仓库的大小较小,速度较快。裸仓库只包含存储库的历史记录和分支,而不包含任何工作副本文件。这使得裸仓库非常适合作为其他仓库的镜像,因为它们只包含必要的元数据,而不需要完整的克隆。

普通仓库包含存储库的历史记录、分支和工作副本文件。这使得普通仓库非常适合作为独立的仓库使用,因为它们包含所有必要的信息来管理代码库。

通过本文,我们了解了git clone --mirrorgit clone的区别,以及它们在实际应用中的不同用途。选择合适的克隆方式有助于更好地管理和协作代码仓库。

  • 微服务商城项目
GithubGitee
开源组织有来开源组织有来开源组织
后端youlai-mall 📖youlai-mall 📖
前端mall-admin🌎mall-admin 🌎
移动端mall-app 🌎mall-app 🌎
  • 前后端分离项目
GithubGitee
开源组织有来开源组织有来开源组织
后端youlai-boot 📖youlai-boot 📖
前端vue3-element-admin 🌎vue3-element-admin 🌎# 开源项目
一个维护了将近三年的php项目,最近需要交给工程组的同事维护,需要把我们成都内网的gitlab仓库的一些项目同步一份到武汉gitlab仓库。可能后续,还会再次同步更新。(成都仓库可能发生新的commit,需要把最新的变动同步到武汉仓库) 所以,这里就需要用到git clone --mirror old.git的相关命令,来完成代码仓库的镜像同步操作。 最终的效果是,迁移后的仓库内容是包含了现有分支的所有commit、merge等分支上的变动历史记录!这些记录就是这些代码的前世今生! 下面正文部
github有时候git clone太慢了,用国内镜像的话就可以大大加速。我目前发现2个镜像网站: https://hub.fastgit.org https://github.com.cnpmjs.org 目前测评来看,第一个镜像比较稳定,速度也快。 使用方法: git clone https://github.com/xxx/xxx.git git clone https://hub.fastgit.org/xxx/xxx.git
由于国内政策原因,访问 GitHub 会被限制速度,在 clone GitHub 上的代码时很容易出现连接超时的情况,给没有梯子的同学造成了很多困扰,本博客旨在提供有效的国内镜像,使大家能够顺利下载代码进行学习。
`git clone -b master` 和 `git clone -b origin/master` 是不一样的。 `git clone -b master` 是指从远程仓库中克隆 `master` 分支到本地仓库。 而 `git clone -b origin/master` 则是指从远程仓库中克隆 `origin/master` 分支到本地仓库。 注意,`origin/master` 是指向远程仓库 `origin` 的 `master` 分支的指针。所以,在使用 `git clone -b origin/master` 命令时,会将远程仓库 `origin` 的 `master` 分支克隆到本地仓库。 总结起来,`git clone -b master` 是直接克隆指定远程仓库的分支,而 `git clone -b origin/master` 是克隆指定远程仓库中的某个分支。
Spring Boot 升级 3.2 报错 Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String 10960
Spring Boot 升级 3.2 报错 Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String 穷苦书生_万事愁: 博主的文章真的是超级有价值!通过阅读这篇关于“Spring Boot 升级 3.2 报错 Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String”的文章,我对这个主题有了全新的认识。博主对细节的描写非常到位,让我感受到了博主的深厚功底。希望博主能够继续分享更多类似的好文,同时也期待能够得到博主的指导,共同进步。非常感谢博主的分享和支持! Linux 安装 Nginx 并配置为系统服务(超详细) 有来技术: 哦哦 ,理解了,不用客气 Linux 安装 Nginx 并配置为系统服务(超详细) 蓝色的回忆!: 感谢回复。我以为是必须关闭防火墙,放行80端口不行。 Linux 安装 Nginx 并配置为系统服务(超详细) 有来技术: 放行 80 端口,不一定要关闭防火墙,在防火墙规则添加 80 端口至白名单,因为是本地虚拟机关闭防火墙方便些。我不清楚你问这个问题的出发点是什么? Linux 安装 Nginx 并配置为系统服务(超详细) 蓝色的回忆!: 我想知道为什么要关闭防火墙