剛工作使用svn的時候,基本沒有考慮過檔案的狀態,以為無非是檢出、提交、撤回,對版本控制理解的不夠深入,其實svn和git一樣,也有add相關操作。git檔案狀態的轉換
git下每個檔案狀態分為4個階段:
未追蹤(untracked):未加入git索引時的狀態
暫存(staged):檔案的變更已進入暫存區,此時可提交到庫中
已提交(unmodfied):穩定態,所有變更已提交
通俗來說,一般工作場景下如不考慮撤回的情況,檔案是這樣變化的:
工作目錄中新建了乙個檔案(未追蹤)
加到索引(暫存)
提交(已提交,版本1)、
再次修改了內容檔案並儲存(已修改)、
再加到索引(暫存)、
再提交(已提交,版本2)。
要點:要提交先暫存!一切提交是以暫存態的變化為準的,修改後未暫存的內容是無法被提交生效的。而一般git的視覺化工具、外掛程式在提交操作前,都已經預設幫我們完成暫存了,使用者沒有感知
git以檔案內容計算校驗和,來索引檔案,校驗和機制是sha-1 雜湊。每個提交都有自己的sha-1碼狀態遷移簡圖如下:
如果以檔案a.txt為例,帶上實際的操作命令,則如下圖:
簡要對圖進行說明:
學習APUE筆記2 檔案IO
fd是在檔案io中貫穿始終的型別 1 檔案描述符的概念 整形數 陣列下標 檔案描述符優先使用當前可用範圍內最小的 作用域 當前程序 2 檔案io操作 open close read write lseek 1 開啟乙個檔案 int open const char pathname,int flags...
python學習筆記2 檔案操作
一 檔案操作 檔案操作一定要注意檔案指標 f open a encoding utf 8 f.seek 0 檔案指標移到行首 f.tell 檢視檔案指標的位置 f.read 返回字串 f.close f.truncate 清空 檔案開啟三種方式 讀 r 沒指定模式,就是讀 寫 w 追加 a 讀寫模式...
python 學習筆記2 檔案處理
1 檔案操作 1 檔案讀寫2 開啟,讀取,寫,關閉 4 f open cm r encoding utf 8 開啟檔案,預設gbk,所以需要轉碼5 f.close 一旦開啟必須關閉67 檔案開啟三種方式,讀 寫 追加 r w a8 讀 r 不指定時預設為讀9 讀寫 r 只要有r,檔案不存在都會報錯1...