git clone https://github.com/octocat/Spoon-Knife
与 git clone https://github.com/octocat/Spoon-Knife.git
区别是什么?
git clone https://github.com/octocat/Spoon-Knife
与 git clone https://github.com/octocat/Spoon-Knife.git
区别是什么?
本质上讲没有区别。只是远程文件系统的命名不同而已。
但是就 git 来说。还是有一些细节需要了解。
git init 用来初始化一个仓库。
git init --bare 用来初始化一个纯仓库。
纯仓库意思是:只有版本库,而没有工作目录。 通常用作开发团队的远程仓库。集中存放代码。而没有工作空间。
我们知道你自己克隆下来的代码,根目录下都有一个隐藏的文件夹 .git/ 这个就是版本库的元文件存放的位置。
因此习惯上:如果你想初始化一个纯仓库,会把目录命名为 yourproject.git 这样的形式。以明确他是一个不含有工作空间的纯仓库。
了解到答案了,自己来答一下。
git
会帮你补上 .git
,但是不会帮你去掉 .git
当你使用 git clone xxx
,git
会先去找 xxx
,如果没有,就去找 xxx.git
;
当你使用 git clone xxx.git
时,git
只会去找 xxx.git
。
xxx.git
是 bare repositories
(服务端),xxx
是 working tree
(本地)git clone xxx
还是 git clone xxx.git
最终都是到 xxx.git
git init --bare
生成bare repositories
只会接收 push,不会进行本地开发。
生成的文件/文件夹是直接
在指定目录的,如下图左侧
。
git init
生成working tree
用于本地开发。
生成的文件/文件夹是在指定目录下的 .git
目录下,如下图右侧
。
参考:
5 回答2.8k 阅读
3 回答2.6k 阅读
3 回答958 阅读
后面就是一个url,加不加.git要看你使用的资源提供url的格式是什么。
github 现在是兼容两种 url 格式。