git clone xxx 与 git clone xxx.git 有区别吗?

git clone https://github.com/octocat/Spoon-Knifegit clone https://github.com/octocat/Spoon-Knife.git 区别是什么?

阅读 7.2k
4 个回答

后面就是一个url,加不加.git要看你使用的资源提供url的格式是什么。
github 现在是兼容两种 url 格式。

本质上讲没有区别。只是远程文件系统的命名不同而已。

但是就 git 来说。还是有一些细节需要了解。
git init 用来初始化一个仓库。
git init --bare 用来初始化一个纯仓库。
纯仓库意思是:只有版本库,而没有工作目录。 通常用作开发团队的远程仓库。集中存放代码。而没有工作空间。
我们知道你自己克隆下来的代码,根目录下都有一个隐藏的文件夹 .git/ 这个就是版本库的元文件存放的位置。

因此习惯上:如果你想初始化一个纯仓库,会把目录命名为 yourproject.git 这样的形式。以明确他是一个不含有工作空间的纯仓库。

了解到答案了,自己来答一下。

1. git 会帮你补上 .git,但是不会帮你去掉 .git

当你使用 git clone xxxgit 会先去找 xxx ,如果没有,就去找 xxx.git
当你使用 git clone xxx.git 时,git 只会去找 xxx.git

2. xxx.gitbare repositories(服务端),xxxworking tree(本地)

3. 你使用 git clone xxx 还是 git clone xxx.git 最终都是到 xxx.git

4. git init --bare 生成bare repositories

只会接收 push,不会进行本地开发。
生成的文件/文件夹是直接在指定目录的,如下图左侧

5. git init 生成working tree

用于本地开发。
生成的文件/文件夹是在指定目录下的 .git 目录下,如下图右侧

clipboard.png


参考:

其实我也想知道这其中的区别,我查找了好多资料git clone后面都要加.git。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进