git 怎么識別不了ls 命令
2 回答

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
1,未被跟蹤的文件(untracked file)
2,已被跟蹤的文件(tracked file)
2.1,被修改但未被暫存的文件(changed but not updated或modified)
2.2,已暫存可以被提交的文件(changes to be committed 或staged)
2.3,自上次提交以來,未修改的文件(clean 或 unmodified)
Git把它所管理的所有對象(blob,tree,commit,tag……),全部根據它們的內容生成SHA1哈希串值作為對象名;根據目前的數學知識,如果兩塊數據的SHA1哈希串值相等,那么我們就可以認為這兩塊數據是相同的。這樣會帶來的幾個好處:
1,Git只要比較對象名,就可以很快的判斷兩個對象的內容是否相同。
2,因為在每個倉庫(repository)的“對象名”的計算方法都完全一樣,如果同樣的內容存在兩個不同的倉庫中,就會存在相同的“對象名”。
3,Git還可以通過檢查對象內容的SHA1的哈希值和“對象名”是否匹配,來判斷對象內容是否正確。
4,根據上面的原則:Git確實根據內容來生成名字的,而且同名(SHA1哈希串值)肯定會有相同內容,但是提交對象(commit)和其它對象有點不一樣,它里面會多一個時間戳(timestamp),所以在不同的時間生成的提交對象,即使內容完全一樣其名字也不會相同。
- 2 回答
- 0 關注
- 956 瀏覽
添加回答
舉報
0/150
提交
取消