git的跟蹤分支和遠端跟蹤分支學習筆記
概念區分
- 分支(branch):是指向某個commit物件的引用
- 跟蹤分支(tracking branch):本地的分支,比如master分支,使用者可寫
- 遠端跟蹤分支(remote tracking branch):遠端的分支origin/master, 使用者只讀
通過git clone操作來了解倉庫同步的過程
克隆前【遠端倉庫】的狀態:遠端倉庫master分支指向c2的commit
將資料克隆到本地之後:
- 首先會生成一個origin/master的引用指向最新的提交c2,這個orgin/master 就是遠端跟蹤分支,使用者只讀。
- 然後根據origin/master 生成一個master分支指向同一個提交c2, 如下:
- 首先會生成一個origin/master的引用指向最新的提交c2,這個orgin/master 就是遠端跟蹤分支,使用者只讀。
通過git push操作來了解倉庫同步的過程
專案克隆之後,修改本地檔案並提交,此時master分支的head處於c3的位置【git push前的一個狀態】
通過git push 命令會對遠端和本地都作出修改
- 修改遠端的master指向至c3,如下圖所示:
- 修改本地的origin/master分支指向c3,如下圖所示
- 修改遠端的master指向至c3,如下圖所示:
關於checkout 的操作
- 通過 git checkout master 會把分支切換到master分支上
- 而當 git checkout origin/master 時,這個操作會處於‘detached Head’ 狀態,在這種狀態下不會修改origin/master上的資料,可以修改並提交做一些實驗性的操作,但是切換回master分支後,再次從master切換回origin/master時,之前的改變不會同步,因為origin/master 是使用者只讀的
通過git fetch origin獲取資料
在fetch之前,遠端處於c4,本地處於c3
fetch之後,本地的origin/master分支指向了最新的c4
對比修改的地方:git diff master origin/master
通過git merge origin/master合併本地分支
- 備註:可以merge的前提是在無衝突的狀態下,有衝突要手動解決
- merge之後,master分支指向c4, 如下圖:
通過git pull獲取同步最新資料
- 備註:前提是沒有衝突,有衝突手動解決
- git pull 之前的狀態:遠端在c4, 本地在c3
- git pull 之後的狀態:本地倉庫更新了origin/master,將其指向c4; 然後更新master分支, 將其指向c4
- git pull = git fetch + git merge
- git pull –rebase = git fetch + git rebase
更新版本建議的操作
- git fetch + git merge
- git fetch + git rebase
- git pull –rebase
相關文章
- Git分支(遠端)Git
- Git 操作——如何刪除本地分支和遠端分支Git
- oracle跟蹤檔案和跟蹤事件(zt)Oracle事件
- Git clone遠端分支Git
- Git 與遠端分支Git
- git 忽略跟蹤檔案Git
- Git 拉取遠端分支Git
- Git遠端協作和分支Git
- git 遠端分支常用操作Git
- git 刪除遠端分支Git
- Git 獲取遠端分支Git
- git列出跟蹤的檔案列表Git
- Git跟蹤與提交檔案Git
- Git 分支的建立與切換 —— Git 學習筆記 14Git筆記
- [zt] oracle跟蹤檔案與跟蹤事件Oracle事件
- oracle跟蹤檔案與跟蹤事件(zt)Oracle事件
- git 更新本地的遠端分支列表Git
- Git 系列教程(14)- 遠端分支Git
- git切換到遠端分支Git
- git本地分支與遠端分支名稱不相同,推送到遠端Git
- git clean清除未跟蹤檔案Git
- git刪除未跟蹤檔案Git
- Oracle跟蹤事件和dumpOracle事件
- Git管理專案例項說明-記錄和跟蹤專案Git
- git克隆遠端倉庫的指定分支Git
- Git拉取遠端分支到本地Git
- 如何在 Git 中取消檔案的跟蹤Git
- 跟蹤客戶端執行的SQL客戶端SQL
- 基於行跟蹤的ROWDEPENDENCIES實現資訊變化跟蹤
- 小專案跟蹤記錄
- git列出所有已經跟蹤檔案Git
- sqlnet跟蹤SQL
- ORACLE 跟蹤工具Oracle
- git操作之pull拉取遠端指定分支以及push推送到遠端指定分支Git
- 跟蹤查詢DBLink遠端表是否使用到索引索引
- git本地分支對映遠端分支並推送相應程式碼Git
- SQL跟蹤工具和TKPROF使用SQL
- 修改git遠端倉庫分支名稱Git