<project>.git 文件从何而来?
Where does the file <project>.git come from?
我已经初始化了几个本地 git 存储库,但其中 none 有一个 <project>.git
文件;只有一个 .git
目录。我想将这些存储库中的一个克隆到本地网络上的另一台机器,但 clone
似乎需要一个 <project>.git
文件。这个文件是如何生成的?
要获得 project.git
(而不是 project/.git
),您需要使用 git clone --bare
或 git init --bare
。
这将创建一个 bare repository,只有 .git 内容,没有工作树。
您似乎在尝试托管 git 服务器
如果您只需要将项目复制到其他机器上,其中包含所有文件和 git
数据,那么只需复制包含 .git
存储库的文件夹。 .git
目录包含 git 的元数据(以及所有版本历史记录)。这将包含项目的完整工作树和 git 版本历史记录。这称为非裸存储库。
一个non-bare repository是另一个repository的clone,加上local state,比如.git/HEAD,表示check out了哪个revision,index,用来标识修改了什么签出树并帮助准备提交对象等
裸仓库是 project.git
,它不包括工作树,只包括 .git
文件夹。使用 git init --bare
或 git clone --bare
创建的裸存储库基本上用于共享。如果您正在与一组开发人员协作,并且需要一个地方来共享对存储库的更改,那么您可以在集中位置创建一个裸存储库,所有用户都可以在其中推送他们的更改。
因此,如果您需要 bare
存储库,即 project.git
,您将需要创建一个。目录中的 project.git
或 .git
文件夹相同,其中包含 git
元数据和版本历史记录。
我已经初始化了几个本地 git 存储库,但其中 none 有一个 <project>.git
文件;只有一个 .git
目录。我想将这些存储库中的一个克隆到本地网络上的另一台机器,但 clone
似乎需要一个 <project>.git
文件。这个文件是如何生成的?
要获得 project.git
(而不是 project/.git
),您需要使用 git clone --bare
或 git init --bare
。
这将创建一个 bare repository,只有 .git 内容,没有工作树。
您似乎在尝试托管 git 服务器
如果您只需要将项目复制到其他机器上,其中包含所有文件和 git
数据,那么只需复制包含 .git
存储库的文件夹。 .git
目录包含 git 的元数据(以及所有版本历史记录)。这将包含项目的完整工作树和 git 版本历史记录。这称为非裸存储库。
一个non-bare repository是另一个repository的clone,加上local state,比如.git/HEAD,表示check out了哪个revision,index,用来标识修改了什么签出树并帮助准备提交对象等
裸仓库是 project.git
,它不包括工作树,只包括 .git
文件夹。使用 git init --bare
或 git clone --bare
创建的裸存储库基本上用于共享。如果您正在与一组开发人员协作,并且需要一个地方来共享对存储库的更改,那么您可以在集中位置创建一个裸存储库,所有用户都可以在其中推送他们的更改。
因此,如果您需要 bare
存储库,即 project.git
,您将需要创建一个。目录中的 project.git
或 .git
文件夹相同,其中包含 git
元数据和版本历史记录。