tft每日頭條

 > 生活

 > git本地應該有幾個本地倉庫

git本地應該有幾個本地倉庫

生活 更新时间:2024-12-05 08:00:01

本章節将深入探讨git init 命令。主要包括如下内容

  • git init 選項和用法
  • .git 目錄概覽
  • 自定義git init目錄環境值
  • git init 對比 git clone
  • git init 空倉庫
  • git init 模闆

git init命令會創建一個新的 Git 倉庫庫。它可用于将現有的、未進行版本控制的項目轉換為 Git 倉庫或初始化一個新的空的倉庫。大多數 Git 命令在初始化倉庫之外都不可用,所以說這是進行其他操作的基礎。如果不是在倉庫内進行其他的Git 命令操作,将會出現如下錯誤。

git本地應該有幾個本地倉庫(Git系列)1

Git-倉庫外進行操作的錯誤信息

執行git init會在當前工作目錄中創建一個子目錄.git,其中包含新倉庫所需的所有 Git 元數據。此元數據包括對象、引用和模闆文件等子目錄。還會創建一個HEAD文件,指向當前簽出的提交。

下面我們以 /root/workspace/repo 為例,看一下git init 生成的内容

$ cd /root/worksapce/repo $ git init Initialized empty Git repository in /root/workspace/repo/.git/

命令執行成功之後,使用tree命令看一下所有的内容

$ tree

git本地應該有幾個本地倉庫(Git系列)2

Git-倉庫的文件

除了.git目錄之外,項目的根目錄中現有的其他目錄或文件保持不變。

與SVN不同,Git不需要在每個子目錄中都創建一個.git 子目錄。

默認情況下,git init會将 Git 配置初始化到.git子目錄中。如果想要将這些配置放到其他地方,可以修改和自定義子目錄路徑。我們可以将$GIT_DIR環境變量設置為自定義路徑,git init會在執行的時候讀取該環境變量,并在那裡初始化 Git 配置文件。此外,我們還可以在 git init 命令後面指定參數--separate-git-dir來設置配置項存放的路徑。--separate-git-dir 的優先級要高于設置 $GIT_DIR。

$ git init --separate-git-dir=/root/.git_repo

這時會在 /root/.git_repos 目錄下生成所有的配置文件

git本地應該有幾個本地倉庫(Git系列)3

Git-倉庫配置文件位置

除了上面示例中我們必須進入項目目錄進行初始化之外,還可以在項目目錄之外給 git init 命令指定項目目錄來進行初始化倉庫。

git init <directory>

git本地應該有幾個本地倉庫(Git系列)4

Git-在項目目錄之外初始化倉庫

如果我們已經在一個項目目錄上運行git init命令并且它包含一個.git子目錄,那麼我們可以放心地在同一個項目目錄上再次運行git init。它不會覆蓋現有.git配置。

git init 與 git clone

快速說明:git init 與 git clone 很容易混淆。它們都可以用于“初始化一個新的 git 倉庫”。但是,git clone 依賴于 git init。git clone用于創建現有倉庫的副本。在内部,git clone 首先調用 git init以創建新倉庫。然後它從現有倉庫複制數據,并檢出一組新的工作文件。訪問git clone 頁面了解更多信息。


裸倉庫 --- git init --bare

git init --bare <directory>

初始化空的Git倉庫,但忽略工作目錄。共享倉庫應始終使用--bare标志創建。通常,使用--bare标志初始化的倉庫以.git結尾。例如,名為 repo 的倉庫的裸版本應該存儲在名為repo.git的目錄中。

--bare标志會創建一個沒有工作目錄的倉庫,從而無法在該倉庫中編輯文件和提交更改。我們可能會創建一個用于git push和git pull的裸倉庫,但絕不會直接在這個裸倉庫上進行提交。應始終将中央倉庫創建為裸倉庫,因為将分支推送到非裸倉庫可能會覆蓋更改。應該将--bare認為是一種将倉庫标記為存儲設施而不是開發環境的方法。這意味着,對于幾乎所有的Git工作流,中央倉庫是空的,而開發人員的本地倉庫是非空的。

git本地應該有幾個本地倉庫(Git系列)5

Git 中央倉庫架構

git init --bare最常見的應用場景是創建一個遠程中央倉庫:

git init --bare repo.git

使用--bare标志創建一個中央倉庫。然後,開發人員将克隆 repo.git 從而在他們的開發機器上創建本地副本。


git 初始化模闆

git init <directory> --template=<template_directory>

初始化一個新的 Git 倉庫并将文件從 <template_directory>複制 到倉庫中。

模闆允許我們使用預定義的.git子目錄初始化新倉庫。可以将模闆配置為具有将被複制到新倉庫的.git子目錄的默認目錄和文件。默認的 Git 模闆通常位于/usr/share/git-core/templates目錄中,但不同機器上可能位于不同的路徑中。

默認模闆是如何利用模闆功能的一個很好的參考和示例。默認模闆中展示的模闆的一個強大功能是 Git Hook 配置。可以使用預定義的 Git 鈎子創建模闆,并使用準備就緒的常用鈎子初始化新的 git 倉庫。

我們會在以後的章節中對 Git Hook 進行介紹。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved