本地分支 远程分支 跟踪分支

参考:https://zlargon.gitbooks.io/git-tutorial/content/branch/commit_tree.html
必要的引用:

在 Git 的世界裡,我們可以把每個 patch 都看成是一個小節點
這些 patch 一個一個的串連起來,最後組成了 Commit Tree

本地分支 远程分支 跟踪分支_第1张图片
commitTree

不論我們在哪一個節點上面,都可以藉由 parent 一路往回走,最終都會回到 root
root 也就是我們的 first commit
因此每一條從 patch 回到 root 的路徑,其實都是一個的分支
每個 commit id 都是獨一無二的,絕對不會重複,因為每一條路徑都是唯一的
每個 commit id 都可以視為是一個版本分支

本地分支,远程分支与跟踪分支

patch用来记录文件的差异,被提交的patch叫做commit,想象有一颗commit tree,本地和远程共同维护这棵树; 树上的分支被本地和远程分别维护;

LJBJ@PLPSC:~/x11r69/gittest/xvfbzos [0]$git branch -avv
* dev e34d748 [origin/dev] set the .gitattributes for *.sh
master 6be496a [origin/master] init the xvfb project
remotes/origin/HEAD -> origin/master
remotes/origin/dev e34d748 set the .gitattributes for *.sh
remotes/origin/master 6be496a init the xvfb project

  • dev 是本地用户维护的一条分支, 这条分支在没有push到远程前仅仅存在在本地数据库,但是会出现在commit tree中
  • origin/dev 是远程服务器维护的一条分支, 它与本地的dev 很可能不是同一条分支。
  • remotes/origin/dev 代表远程库 origin中的dev分支的最近一次fecth时的状态。 每次fetch会自动移动origin/dev在commit tree中的位置;

你可能感兴趣的:(本地分支 远程分支 跟踪分支)