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
- git列出跟蹤的檔案列表Git
- Git跟蹤與提交檔案Git
- git 遠端分支常用操作Git
- Git遠端協作和分支Git
- Git 拉取遠端分支Git
- Git 分支的建立與切換 —— Git 學習筆記 14Git筆記
- git刪除未跟蹤檔案Git
- git clean清除未跟蹤檔案Git
- git 更新本地的遠端分支列表Git
- Git 系列教程(14)- 遠端分支Git
- git本地分支與遠端分支名稱不相同,推送到遠端Git
- 如何在 Git 中取消檔案的跟蹤Git
- git列出所有已經跟蹤檔案Git
- git克隆遠端倉庫的指定分支Git
- Git拉取遠端分支到本地Git
- git操作之pull拉取遠端指定分支以及push推送到遠端指定分支Git
- sp_trace_setfilter sqlserver篩選跟蹤或跟蹤過濾FilterSQLServer
- git本地分支對映遠端分支並推送相應程式碼Git
- 主力跟蹤戰法
- 反跟蹤技術
- Dubbo學習系列之十八(Skywalking服務跟蹤)
- 使用 Python 和 Prometheus 跟蹤天氣PythonPrometheus
- git遠端分支回滾到指定版本Git
- 修改git遠端倉庫分支名稱Git
- JVM中的本機記憶體跟蹤JVM記憶體
- 一個ssh無法遠端登入的問題跟蹤解決
- 基於深度學習的機器人目標識別和跟蹤深度學習機器人
- matlab練習程式(LQR路徑跟蹤)Matlab
- web前端學習教程:Cookie會話跟蹤技術Web前端Cookie會話
- SQLServer進行SQL跟蹤SQLServer
- 會話跟蹤技術會話
- 除錯跟蹤利器---strace除錯
- [20190402]跟蹤vmstat.txt
- Linux 跟蹤器之選Linux
- 跟蹤執行命令T
- git 從遠端倉庫獲取所有分支Git