古詩詞大全網 - 藝術簽名 - 4.git添加和git提交

4.git添加和git提交

git中的文件對象最終存儲在。git/objects目錄,並以二進制形式存儲。Git既是松散存儲的,也是有區別的。每次修改文件時,都會在。git/objects目錄,再次修改時會生成另壹個二進制對象,這就是松散存儲。但是,當工作區中二進制對象的數量超過6700個(該數量可以配置)時,git會進行打包行為,對同壹文件進行不同的存儲,以減少文件的數量。

Git可能有超過100個命令。命令不多,但是每個命令可以帶很多參數,非常強大。Git命令總是分為兩類:高級命令和低級命令。

Gita Add和git commit都是高級命令,高級命令通過調用多個低級命令來完成操作。在這壹節,希望大家能徹底理解git add和git commit。

例如,如果我們構建壹個新項目並創建壹個新的test.go文件,並在該文件中隨意編寫壹些內容,讓我們使用底層命令來生成壹個完整的git歷史:

步驟1:為test.go文件生成壹個二進制存儲對象。

Git hash-object命令是為壹個文件生成它的二進制存儲對象並返回它的sha1簽名代碼,假設它返回“0 d5a 2b 61190403 ef 081242860845106558。

步驟2:更新索引文件

這壹步是將上壹步生成的對象及其路徑添加到索引中。我們使用在上壹節中討論過的updae-index命令。

以上兩個命令完全等同於git add test.go命令。

步驟3:生成目錄樹對象。

調用write-tree命令後,git會根據當前索引區的目錄結構生成壹個樹對象,並返回這個樹對象的sha1簽名代碼,假設返回:d8329f。

步驟4:生成提交對象。

echo後單引號內的內容是我們的提交消息。第三和第四步是完成git提交命令操作。

您可以嘗試操作上面的四個命令,並在。git/objects目錄和工作區。