1.1 概述
在 Git
中提交時,會保存一個 commit
對象,該對象包含一個指向暫存內(nèi)容快照的指針,包含本次提交的作者等相關(guān)的附屬信息,包含零個或者多個指向該提交對象的父對象指針;首次提交時沒有直接祖先的,普通提交有一個祖先,由兩個或者多個分支合并產(chǎn)生的提交則有多個祖先。
1.1.1 示例
在工作目錄中有三個文件,準備將他們暫存后提交。暫存操作會對每一個文件計算校驗和(SHA-1哈希串),然后把當前版本的文件快照保存在 Git
倉庫中(Git使用blob類型的對象存儲這些快照), 并將校驗和加入暫存區(qū)域。 當使用 git commit
新建一個提交對象前,Git 會先計算每一個子目錄的校驗和嗎,然后在 Git
倉庫中將這些目錄保存為樹(對象);之后 Git
創(chuàng)建的提交對象,除了包含提交信息外,還包含了指向整個樹對象的指針。這樣將來需要的時候,重現(xiàn)此次快照的內(nèi)容了。
$ git add text1.md text2.md tesxt3.md
$ git commit -m "init desc"
現(xiàn)在倉庫中有了五個對象:三個文件表示快照內(nèi)容 blob
對象;一個記錄這目錄樹內(nèi)容和其中各個文件對應(yīng) blob
對象索引的 tree
對象;還有就是一個包含指向 tree
對象的索引和其他提交信息源數(shù)據(jù)的 commit
對象。
修改后再次提交,這次提交的對象會包含上一個指向上次提交對象的指針。兩次提交后變成下面這樣。
Git
中的分支,其實本質(zhì)上僅僅是個指向 commit
對象的可變指針。Git
會將 master
作為分支的默認名字。若干次提交以后,其實已經(jīng)有一個指向最后一次提交對象的 master
分支,他在每次提交的時候都會向前移動。
1.1.2 創(chuàng)建分支
使用命令 git branch
創(chuàng)建分支
Git
保存著一個名為 HEAD
的特別的指針。在 Git 中他是一個指向你正在工作中的本地分支的指針。運行 git branch
命令,僅僅是建立了一個新的分支,但是不會自動切換到這個新建的分支中。
1.1.3 切換分支
使用命令 git checkout
切換分支:
1.2 新建和合并
使用命令創(chuàng)建并切換分支
合并分支,將開發(fā)分支合并到 master
主分支中
$ git checkout master
$ git merge 開發(fā)分支>
刪除分支
解決沖突, =======
隔開的上半部分,是 HEAD
(即 master
分支,在運行 merge
命令時所切換到的分支)中的內(nèi)容。下半部分是在開發(fā)分支的內(nèi)容。
HEAD:index.html
div id="footer">contact : email.support@github.com/div>
=======
div id="footer">
please contact us at support@github.com
/div>
>>>>>>> iss53:index.html
1.3 管理分支
列出所有的分支
列出各個分支最后一個提交對象的信息
1.4 遠程分支
遠程分支是對遠程倉庫中分支的索引。通過 git fetch origin
來同步遠程服務(wù)器上的數(shù)據(jù)到本地。
推送本地的開發(fā)分支到遠程
$ git push origin 開發(fā)分支名>
刪除遠程分支
$ git push origin :開發(fā)分支名>
1.5 分支的擴展
git rebase ing
到此這篇關(guān)于Git命令之分支詳解的文章就介紹到這了,更多相關(guān)Git命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 詳解Git合并分支的流程步驟
- git的遠程分支的作用和本地分支有什么區(qū)別
- git push 本地項目推送到遠程分支的方法(git命令版)
- git 將本地文件(夾)上傳到gitee指定分支的處理方法
- idea手動刷新git分支的詳細教程