Git-初始化代碼倉庫

2021-12-23 Git開源社區
執行完成了 git init 命令,究竟做了什麼呢?執行完成如下命令之後,我們可以得到下圖所示的內容,右側的就是 Git 為我們創建的代碼倉庫,其中包含了用於版本管理所需要的內容。

# 左邊執行
$ mkdir git-demo
$ cd git-demo && git init
$ rm -rf .git/hooks/*.sample

# 右邊執行
$ watch -n 1 -d find .


我們這裡可以一起看下生成的 .git 目錄的結構如何:

➜ tree .git
.git
├── HEAD
├── config
├── description
├── hooks
├── info
│   └── exclude
├── objects
│   ├── info
│   └── pack
└── refs
    ├── heads
    └── tags

.git/config - 當前代碼倉庫本地的配置文件

本地配置文件(.git/config)和全局配置文件(~/.gitconfig)

通過執行如下命令,可以將用戶配置記錄到本地代碼倉庫的配置文件中去

git config user.name "demo"

git config user.email "demo@demo.com"

➜ cat .git/config
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true

[user]
    name = demo
    email = demo@demo.com
.git/objects - 當前代碼倉庫代碼的存儲位置


# 均無內容
➜ ll .git/objects
total 0
drwxr-xr-x  2 escape  staff    64B Nov 23 20:39 info
drwxr-xr-x  2 escape  staff    64B Nov 23 20:39 pack

➜ ll .git/objects/info
➜ ll .git/objects/pack

➜ cat ./.git/info/exclude
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~.git/hooks - 當前代碼倉庫默認鉤子腳本

./.git/hooks/commit-msg.sample
./.git/hooks/pre-rebase.sample
./.git/hooks/pre-commit.sample
./.git/hooks/applypatch-msg.sample
./.git/hooks/fsmonitor-watchman.sample
./.git/hooks/pre-receive.sample
./.git/hooks/prepare-commit-msg.sample
./.git/hooks/post-update.sample
./.git/hooks/pre-merge-commit.sample
./.git/hooks/pre-applypatch.sample
./.git/hooks/pre-push.sample
./.git/hooks/update.sample

➜ cat .git/HEAD
ref: refs/heads/master

# 均無內容
➜ ll .git/refs
total 0
drwxr-xr-x  2 escape  staff    64B Nov 23 20:39 heads
drwxr-xr-x  2 escape  staff    64B Nov 23 20:39 tags

➜ ll .git/refs/heads
➜ ll .git/refs/tags

.git/description - 當前代碼倉庫的描述信息

➜ cat .git/description
Unnamed repository; edit this file 'description' to name the repository.

性能優化是軟體系統中最有挑戰的工作,非常考驗綜合能力。這麼說吧,如果能把性能優化的各個關鍵點吃透,你已經是個非常厲害的軟體工程師了。

但話說回來,只要你了解少數幾個系統組件的基本原理和協作方式,掌握基本性能指標和工具,和常用的性能優化技巧,已經可以分析和優化大多數性能問題了。在這個基礎上,再去讀那些經典作業系統圖書,才能事半功倍。

我認為,學習要掌握正確的方法。對大多數人來說,最好的學習方式一定是帶著問題、有重點地學習。這裡,分享給你一張 Linux 性能優化圖譜,涵蓋了大部分性能問題,可以幫你建立對系統性能的全面認知。



這張圖譜出自倪朋飛,他是微軟首席軟體開發經理,負責開源容器編排系統 Kubernetes 在 Azure 的落地實踐,之前曾任職於盛大雲和騰訊。哥們在雲計算領域有近 10 年工作經驗,所以對 Linux 性能優化有一套自己的思考和沉澱。

 

去年,訂閱了他的專欄《Linux 性能優化實戰》,那會兒還是追著更新看的,今年抽空又二刷了。裡面好幾篇文章,都讓我感覺值回了整個專欄的「票價」,已經不能用「收穫大」一言概之了。整個跟下來,是我見過最實用的性能優化學習資料,這裡推薦給你。


相關焦點

  • git push 如何同時推送至兩個git倉庫
    假設以 a 倉庫作為最終的使用倉庫, b為發布倉庫。分支都為 devgit remote add origin1 git.agit remote add origin2 git.b第二步,本地確保沒 change 的東西,拉去遠程倉庫地址,然後進行 rebase 。
  • 困擾你的Git操作?
    對於初學者而言了解 git 基本詞彙的含義和 git 的工作原理還是很有必要的,這樣對解決 git 操作中的 「bug」 也非常有幫助。remote:指存放在遠程的一個計算機,在一般指 GitHub 伺服器。clone:指克隆,將 github 上的項目克隆(也可以說是複製)到自己的電腦上。origin:指遠程的代碼倉庫(自己的倉庫),即源文件。
  • Askgit:利用熟悉的SQL語句挖掘git倉庫的信息
    注意對於一些比較大的git倉庫,Askgit操作比較慢慢,這可能是目前發現一個問題。commit信息Git的基本單位是commit,commit表示對倉庫文件的變更歷史。通過對commit的信息可以追溯參考每一個文件延續歷史信息。
  • Linux/git常用命令
    reset :重新初始化終端/清屏11.  clear :  清屏12.  history : 查看命令歷史13.  help : 幫助14.  exit : 退出15.  #:注釋gitgit config -l : 查看配置git config --system --list :系統配置git
  • git初始化項目乾貨分享,內容雖不多,但值得收藏
    說的廢話有點多了,轉入正題,git初始化項目有兩種情況,項目是在我們本地還是在github或者gitlab等遠程倉庫1.首先進入本地項目文件夾根目錄執行 git init 把這個文件夾變成Git可管理的倉庫2.git add .把該目錄下的所有文件添加到本地倉庫3.用git commit -m "項目注釋" 把項目提交到本地倉庫4.建立遠程和本地倉庫的連接 git remote add origin http://git.xxx.git5.先拉 git
  • 前端必須知道的Git和SVN的區別
    前言Git和SVN都是版本管理系統,但是他們命令區別後面會簡單進行一個對比,我們先從原理的角度分析4.git和svn命令先來複習哈命令作用gitsvn版本庫初始化git initsvn createclonegit clonesvn co(checkout)addgit
  • Git教程(一)
    此外,比如GitHub和Bitbucket這類在Web上託管的Git倉庫也使得代碼得以實現共享和協作。Git幫助人們保持軟體的組織性和可用性無序的代碼會影響自己和其他實驗室成員的不便,代碼丟失更是會導致實驗結果無法再現,並影響之後的實驗。Git有助於保持工作的連續性和項目歷史的完整記錄。將整個項目集中到一個倉庫中可以保持其組織性。
  • 微信小程序如何使用 Git 實現版本管理和協作開發
    此處我們選擇使用公開的倉庫,命名路徑為「HelloGitee」,開發語言選擇「JavaScript」。確認後點擊「創建」按鈕初始化遠程倉庫。創建並初始化完遠程倉庫後,我們得到了一個空白倉庫如下圖。項目的倉庫地址是:https://gitee.com/normalcoder/HelloGitee.git 接下去我們將初始化本地的Git倉庫。
  • (一)深入淺出圖解Git,入門到精通(保姆級教程)
    配置完信息後,就可以「創建目錄,並且初始化自己的本地倉庫」了:$ mkdir github$ cd github$ pwd/e/github$ git init  // 初始化本地倉庫Initialized empty Git repository in /e/
  • Git基本命令大全
    切換分支如:git checkout bestore_sprint_11155、git pull拉代碼6、git add -Agit add -A  提交所有變化提交新文件(new)和被修改(modified)文件,不包括被刪除(deleted)文件add到緩存中7、提交代碼git commit -m "注釋"8、推送代碼git push9、git init
  • 前端必須知道的 Git 和 SVN 的區別
    (-cached / head)svn diff更新至歷史版本git checkoutsvn update -r切換taggit checkoutsvn switch切換分支git checkout branchsvn switch branch還原文件git checkout - pathsvn revert path刪除文件git rm pathsvn rm path移動文件git mv pathgit
  • git 使用跟問題總結
    創建並初始化本地版本庫(首先要創建文件夾)    git init2. 添加文件到版本庫     git add 文件名或文件夾名3.刪除    git rm 文件名9. 關聯遠程倉庫    git remote add origin git@github.com:git帳戶名/本地版本庫名.git10.
  • git命令使用詳解~建議收藏
    精彩內容,第一時間送達1. G
  • 1小時搞懂 Git 版本控制
    是否看完 Git 網絡教程還是不會將代碼推送到 GitHub?如果你還是這種情況,沒關係,因為這不是你一個人的問題。我相信通過本次 Chat,你一定可以懂得 Git 工作原理,也會擁有自己的 GitHub 帳號,並且能將自己寫好的代碼推送到遠程倉庫,通過 GitHub 託管,再也不用擔心重裝系統導致代碼丟失的問題。
  • 百度開源的git多倉庫管理工具!
    軟體簡介MGit 是一款基於 Git 的多倉庫管理工具,可以安全、高效地管理多個 Git 倉庫,適合於在多個倉庫中進行關聯開發的項目,實現批量的版本管理功能
  • Git 從入門到放棄命令大全
    1. 初始化 初始化一個新目錄git init [project-name]下載遠程倉庫的項目到本地git clone [url] 2. 配置 配置文件分為全部配置和倉庫配置,全局配置文件是 ~/.gitconfig,當前項目配置文件是 .git/config。
  • git rebase:原來還能這樣合併代碼!
    Git 的 rebase 的中文翻譯是」變基」,其主要作用是將多個 commit 合併成 1 條或多條之後 ,push 到遠程個人倉庫或上遊分支,最終實現合併代碼、改變歷史提交記錄的效果。看到這裡,大家可能和我想到了一處,以後不小心提交的 bug 記錄是不是可以偷偷刪掉還不被老大發現呢?
  • Git入門實戰教程
    Git對於代碼項目的管理是具有劃時代意義的,向Linus致敬,不但寫出了可以與Windows爭鋒的Linux系統,還設計實現了如此強大的版本管理工具。當我了解Git後,真後悔沒有早一點學習它,那樣寫論文就不用反反覆覆的修修改改了,能省去多少無用功呀。
  • 【Git】Git-常用命令備忘錄(三)
    git作為一個vcs(version control system),是越用越香,那麼還有哪些比較香的地方呢!?1.遠程倉庫中拉取指定分支一定遇到這種情況,github看到一個心儀的開源倉庫,但是分支太多,我們只想要我們需要的分支。
  • 一起學習分布式管理工具git
    或者 git checkout HEAD <file> 命令時,會用 HEAD 指向的 master 分支中的全部或者部分文件替換暫存區和以及工作區中的文件。這個命令也是極具危險性的,因為不但會清除工作區中未提交的改動,也會清除暫存區中未提交的改動。2.創建倉庫git init命令用來初始化一個倉庫,執行該命令會生成一個.git目錄。