
- Git 入門
- Git - 首頁
- Git - 版本控制
- Git - 基本概念
- Git - 命令列
- Git - 安裝
- Git - 首次設定
- Git - 基本命令
- Git - 獲取幫助
- Git - 工具
- Git - 速查表
- Git - 術語
- Git 分支
- Git - 簡述分支
- Git - 建立新分支
- Git - 切換分支
- Git - 分支和合並
- Git - 合併衝突
- Git - 管理分支
- Git - 分支工作流程
- Git - 遠端分支
- Git - 跟蹤分支
- Git - 變基
- Git - 變基與合併
- Git - 合併提交
- Git 操作
- Git - 克隆操作
- Git - 打標籤操作
- Git - 別名操作
- Git - 提交操作
- Git - 暫存操作
- Git - 移動操作
- Git - 重新命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - 修補操作
- Git - Diff 操作
- Git - 狀態操作
- Git - 日誌操作
- Git - HEAD 操作
- Git - origin master
- Git 撤銷
- Git - 撤銷更改
- Git - Checkout
- Git - 恢復
- Git - 重置
- Git - 恢復操作
- Git - Rm
- Git - 切換操作
- Git - Cherry-pick
- Git - 修訂
- Git 在伺服器上
- Git - 本地協議
- Git - 智慧 HTTP 協議
- Git - 簡單 HTTP 協議
- Git - SSH 協議
- Git - Git 協議
- Git - 在伺服器上獲取 Git
- Git - 設定伺服器
- Git - 守護程序
- Git - GitWeb
- Git - GitLab
- Git - 第三方託管選項
- 分散式 Git
- Git - 分散式工作流程
- Git - 為專案做貢獻
- Git - 維護專案
Git 初始化
git init 命令用於建立一個新的 Git 倉庫。在目錄中執行此命令會初始化一個新的空 Git 倉庫,方法是建立一個新的隱藏.git子目錄。
此命令建立了.git目錄,其中包含所有專案引用和物件。
專案的歷史記錄基於.git目錄,該目錄還包含重要的配置檔案。
要建立新倉庫,請選擇git init;要克隆現有倉庫,請使用git clone;不要同時選擇兩者。
同時使用git init和git clone可能會導致衝突和不正確的倉庫設定。
當我們執行git init時,會建立一個空的 Git 倉庫。
倉庫中存在一個包含特定子目錄的.git目錄
objects : 包含 Git 處理的所有資訊(提交、樹和 Blob)。
refs/heads : 提供對倉庫分支末端的引用。
refs/tags : 儲存指向已新增到倉庫的標籤物件的指標。
模板檔案 : 這些也包含在.git目錄中。
透過使用$GIT_DIR環境變數,可以為倉庫選擇不同的基本路徑,而不是標準的./.git。
如果設定了$GIT_OBJECT_DIRECTORY,Git 會將物件儲存在其中;否則,預設為$GIT_DIR/objects。
在已存在的倉庫中執行git init是無風險的,不會替換當前檔案。
它通常與--separate-git-dir選項一起使用,以移動倉庫或配置新模板。
語法
要使用此命令,請在終端中導航到您的專案目錄並執行此命令。
git init
初始化 Git 倉庫後,您通常會繼續使用諸如git add之類的命令來暫存您的檔案,並使用git commit來儲存您的更改。
選項
git init命令具有以下選項
-q
--quiet
Git 的-q或--quiet選項隱藏輸出中的所有附加資訊,將其限制為錯誤和警告訊息,以實現更簡化的命令列介面。
git init --quiet git init -q
--bare
使用 Git 時,--bare選項建立一個沒有工作目錄的倉庫,這適用於伺服器設定,在這些設定中,更改會被拉取和推送,但不會直接編輯。
如果未給出GIT_DIR,則倉庫將在當前目錄中建立。
git init --bare sample-repo.git
--object-format=<format>
在 Git 中,可以使用--object-format=<format>選項指定倉庫的雜湊演算法(物件格式)。
在雜湊物件識別符號方面,Git 預設使用sha1。
如果啟用,可以選擇其他雜湊演算法sha256。
此選項會影響 Git 在整個倉庫中計算和管理物件識別符號的方式。
可使用的格式為loose和pack。
loose是預設格式,其中物件作為單獨的檔案儲存在.git/objects目錄中。
pack是將物件儲存為打包格式,這在儲存方面更有效率。
git init --object-format=pack
--ref-format=<format>
在 Git 中,--ref-format=<format>選項定義倉庫引用的(refs)儲存格式。
預設格式為files,其中 refs 作為鬆散的檔案與 packed-refs 一起儲存。
另一個選項是reftable,它表示一種稱為reftable的實驗性格式。
隨著 Git 的發展和改進,reftable格式可能會看到內部修改。
git init --ref-format=loose
--template=<template-directory>
在 Git 中,--template=<template-directory>選項指定初始化倉庫時將從中獲取模板的目錄。
git init --template=/path/to/template sample-repo
--separate-git-dir=<git-dir>
Git 允許在不建立.git目錄的情況下初始化倉庫,方法是使用--separate-git-dir=<git-dir>選項。
相反,它會生成一個指向給定位置(<git-dir>)的真實倉庫的文字檔案。
此文字檔案充當符號連結,以支援跨多個檔案系統執行倉庫操作。
git init --separate-git-dir=/path/to/git-dir /path/to/working-dir
在上面的示例中,/path/to/git-dir是將建立 .git 目錄的位置,而您的實際專案檔案將位於/path/to/working-dir。
--shared[=(false|true|umask|group|all|world|everybody|<perm>)]
Git 透過指定倉庫應在多個使用者之間共享來允許組成員推送更改,方法是使用--shared選項。
如果未提供值,則它會應用umask(2),或者根據指定的值設定$GIT_DIR下檔案和目錄的許可權。
選項包括
umask : 當未給出許可權時,它使用umask(2)作為預設值。
group : 修改umask(2)值,設定g+sx許可權,並使倉庫可由組寫入。
all、world、everybody : 與group類似,但允許任何使用者瀏覽倉庫。
<perm> : 透過指定以0為字首的 3 位八進位制數字的許可權來覆蓋umask(2)設定。
git init --shared=group
以上命令將倉庫設定為在使用者組之間共享。
因此,如果您是從頭開始一個專案,git init會設定您的版本控制。它也可以用於現有專案以開始跟蹤更改。