分支理解
當使用 git commit
進行提交操作時,Git
會先計算每一個子目錄的校驗和,然後在Git
倉庫中這些校驗和儲存為樹物件。 隨後,Git
便會建立一個提交物件,它除了包含上面提到的那些資訊外,還包含指向這個樹物件(專案根目錄)的指標。如此一來,Git
就可以在需要的時候重現此次儲存的快照。
blob
物件, 儲存檔案快照物件- 樹物件, 記錄目錄結構和
blob
索引 - 提交物件, 包含指向樹物件指標以及所有提交資訊
本地分支管理
git branch
檢視當前本地有多少分支git branch -v
檢視每個本地分支的最後一次提交git branch -vv
檢視本地分支的所有跟蹤分支git branch --merged
檢視合併到當前分支的分支有哪些git branch' --no-merged
檢視未合併到當前分支的分支有哪些git branch branch-name
建立分支git branch -d branch-name
刪除branch-name
分支git branch -D branch-name
強制刪除branch-name
分支
遠端分支管理
- 遠端跟蹤分支以
(remote)/(branch)
命名, 它們是遠端分支的本地引用, 表示上次你連線遠端倉庫時候分支所處的狀態 git ls-remote [remote-name]
獲取遠端應用的完整列表git remote show [remote-name]
顯示遠端分支更多資訊git push origin --delete branch-name
刪除遠端分支
分支切換
git checkout branch-name
切換分支git check -b branch-name
建立並切換到新分支上git checkout -b [branch] [remotename]/[branch]
建立一個跟蹤遠端分支的本地分支git checkout --track [remotename]/[branch]
設定本地分支跟蹤遠端分支git branch -u [remotename]/[branch]
設定本地分支跟蹤遠端分支
變基
git rebase branch-name
將當前分支變基到branch-name
分支上git rebase --onto master server client
取出 client 分支,找出處於 client 分支和 server 分支的共同祖先之後的修改,然後把它們在 master 分支上重演一遍git config --global pull.rebase true
更改git pull
預設為git pull --rebase
其它相關
git fetch remote-name
抓取遠端倉庫有而本地倉庫沒有的資料, 並不合併, 相當於更新跟蹤分支git log --oneline --decorate --graph --all
檢視提交歷史, 分支指向以及專案分支分叉情況git merge branch-name
將branch-name
合併到當前分支上git push [remote] [branch]
推送分支到遠端倉庫