File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed
book/03-git-branching/sections Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change 11[[_git_branches_overview]]
22=== 簡述分支
33
4- 為了理解 Git 分支的使用方式 ,我們需要回顧一下 Git 是如何保存資料的。
4+ 為了理解 Git 分支(branch)的使用方式 ,我們需要回顧一下 Git 是如何保存資料的。
55
66或許你還記得 <<_getting_started>> 的內容,Git 保存的不是變更集或者差異內容,而是一系列快照。
77
8- 當你製造一個提交時 ,Git 會儲存一個提交物件,該物件內容包含一個指標,用來代表已預存的快照內容;
9- 這個物件內容還包含「作者名字和電子郵件」、「你輸入的訊息內容」、「指向前一個提交的指標(該提交的親代提交)」:沒有親代提交表示它是初始的第一個提交 ,一般情況下只有一個親代提交,超過一個親代提交表示它是從二個以上的分支合併而來的。
8+ 當你製造一個提交(commit)時 ,Git 會儲存一個提交物件,該物件內容包含一個指標,用來代表已預存的快照內容;
9+ 這個物件內容還包含「作者名字和電子郵件」、「你輸入的訊息內容」、「指向前一個提交的指標(該提交的親代提交)」:沒有親代(parent)提交表示它是初始的第一個提交 ,一般情況下只有一個親代提交,超過一個親代提交表示它是從二個以上的分支合併而來的。
1010
11- 為了具體說明,讓我們假設你有一個目錄包含了三個檔案,你預存並提交了它們 ;
12- 檔案預存操作會對每一個檔案內容(譯註:請注意,只有檔案「內容」)計算雜湊值(即 <<_getting_started>> 中提到的 SHA-1 雜湊值),然後把那個檔案內容版本保存到 Git 版本庫中(Git 把它們視為 blob 類型的物件),再將這個雜湊值寫入預存區:
11+ 為了具體說明,讓我們假設你有一個目錄包含了三個檔案,你預存(stage)並提交了它們 ;
12+ 檔案預存操作會對每一個檔案內容(譯註:請注意,只有檔案「內容」)計算雜湊值(即 <<_getting_started>> 中提到的 SHA-1 雜湊值),然後把那個檔案內容版本保存到 Git 版本庫中(Git 把它們視為 blob 類型的物件),再將這個雜湊值寫入預存區(staging area) :
1313
1414[source,console]
1515----
1616$ git add README test.rb LICENSE
1717$ git commit -m 'The initial commit of my project'
1818----
1919
20- 當使用 `git commit` 建立一個提交時,Git 會先計算每一個子目錄(本例中則只有專案根目錄)的雜湊值,然後在 Git 版本庫中將這些目錄記錄為樹物件 ;
20+ 當使用 `git commit` 建立一個提交時,Git 會先計算每一個子目錄(本例中則只有專案根目錄)的雜湊值,然後在 Git 版本庫中將這些目錄記錄為樹(tree)物件 ;
2121之後 Git 建立提交物件,它除了包含相關提交資訊以外,還包含著指向專案根目錄的樹物件指標,如此它就可以在需要的時候重建此次快照內容。(((git commands, commit)))
2222
2323你的 Git 版本庫現在有五個物件:三個 blob 物件用來儲存檔案內容、一個樹物件用來列出目錄的內容並紀錄各個檔案所對應的 blob 物件、一個提交用來記錄根目錄的樹物件和其他提交資訊。
You can’t perform that action at this time.
0 commit comments