git checkout分支踩坑記錄

2021-08-31 11:55:23 字數 677 閱讀 2567

遠端倉庫

本地倉庫

快取區工作區

git的倉庫分為遠端倉庫和本地倉庫,作為分布式的管理系統,本地倉庫和遠端倉庫都可以進行版本管理。此外在進行開發時,還有乙個本地工作區和快取區。

git版本切換示意圖如下

git的版本管理是乙個鍊錶的結構,在版本checkout的時候,會讀取並覆蓋本地快取區和工作區。讀取並覆蓋一般有三種情況。

情況1情況2

情況3當前狀態與切換後的狀態相同,無變化

當前狀態存在但下一狀態不存在,會讀取並刪除

當前狀態不存在,但下一狀態存在,會增加該檔案

筆者在開發時未提交本地**到分支就切換了分支,並沒有stash,導致本地的**被覆蓋,切回原有分支時**消失了。正確的姿勢應該是提交本地**後,切換分支解決衝突,或者暫存未提交**。
本文參考博文:

git checkout 遠端分支

git checkout abc 如果遠端剛好有同名分支,則會在本地建立abc分支,並切換到該分支,並追蹤遠端的abc分支。這相當於 git checkout b abc origin abc 但如果用git checkout b abc,則會在本地複製當前分支為abc,無視遠端,這可能不是你的本意...

gitcheckout遠端分支 git分支操作技巧

我從錯誤的分支拉取了內容,或把內容拉取到了錯誤的分支。這是另外一種使用 git reflog 情況,找到在這次錯誤拉 pull 之前 head 的指向。main git reflogab7555f head pull origin wrong branch fast forwardc5bc55a h...

git checkout 切換分支和版本回退

git checkout 切換分支 git checkout b branch新建分支並切換 相當於git branch git checkout git checkout b branch origin newbranch 一般情況下 b 後的branch要和origin newbranch一致,...