版本控制commit和update過程
阿新 • • 發佈:2019-01-16
行修改 -- 客戶端 文件的 查看 功能 服務器 一個 最新版
很早就使用了git、後來還管了一個VSS,但長時間以來git和VSS基本都當ftp使用,頂多知道其有回退舊版本的功能,但對“版本控制”這個詞一直以來都沒領會其內含。
比如我一直擔心兩個問題,一是拉取下來後修改文件如果再次拉取已修改文件是否會被覆蓋,二是兩人拉取後對同一文件分別進行修改和提交那後提交的那個會不會覆蓋前面提交的那個。
針對這兩個問題,專門建了個倉庫進行測試,匯總如下表。
自拉取後本地未修改、遠程未修改 | 自拉取後本地未修改、遠程已修改 | 自拉取後本地已修改、遠程未修改 | 自拉取後本地已修改、遠程已修改 | |
commit | 不操作 | 不操作 | 本地代碼提交到遠程 | commit失敗。提示本地不是最新版本需要update |
update | 不操作 | 遠程代碼同步到本地 | 不操作 | update成功。但報沖突、沖突處理前無法commit |
commit----客戶端本看修改文件----客戶端上報修改文件及其版本----服務器查看上報版本是否為文件最新版本,是則接受不是則打回。
update----客戶端提交所有文件版本----服務端返回所有非最新版文件的最新版----客戶端查看返回的是否是本地已修改文件,是則記錄沖突不是則覆蓋。
版本控制commit和update過程