一、git diff命令使用時(shí)涉及的概念
- workspace:是本地項(xiàng)目的工作目錄,屬于本地代碼發(fā)生更新但尚未執(zhí)行 git add 命令時(shí)的狀態(tài),working tree的狀態(tài)也隨之更新
- index:是索引文件,它是連接working tree和commit的橋梁,每當(dāng)我們使用git add命令來(lái)登記后,index file的內(nèi)容就會(huì)改變,此時(shí)index file就和working tree同步了
- local repository:是本地倉(cāng)庫(kù),當(dāng)我們使用git commit命令提交最新代碼時(shí),代碼才真正進(jìn)入git倉(cāng)庫(kù)。git commit -m “xxx” 就是將 index 里的內(nèi)容提交到本地倉(cāng)庫(kù)中
- remote repository:是遠(yuǎn)程倉(cāng)庫(kù),當(dāng)我們使用git push命令時(shí)就會(huì)將本地倉(cāng)庫(kù)的代碼上傳至遠(yuǎn)程倉(cāng)庫(kù),完成整個(gè)代碼的上傳工作
二、常見(jiàn)的git diff命令使用方法
git diff命令后通常需要跟兩個(gè)參數(shù),參數(shù)1是要比較的舊代碼,參數(shù)2是要比較的新代碼。如果只寫(xiě)一個(gè)參數(shù),表示默認(rèn)跟 workspace 中的代碼作比較。git diff 顯示的結(jié)果為 第二個(gè)參數(shù)所指的代碼在第一個(gè)參數(shù)所指代碼基礎(chǔ)上的修改
2.1 git diff:查看 workspace 與 index 的差別
2.2 git diff --cached:查看 index 與 local repositorty 的差別
2.3 git diff HEAD:查看 workspace 和 local repository 的差別
HEAD 指向的是 local repository 中的代碼最新提交版本
git diff HEAD^ 是比較 workspace 與最新commit的前一次commit的差異,與git diff HEAD的是不同的
git diff HEAD~2 是比較 workspace 與上2次commit的差異,相當(dāng)于 git diff HEAD~2 HEAD~0,注意兩個(gè)HEAD的位置,diff顯示的結(jié)果表示 參數(shù)2(HEAD~0) 相對(duì)于參數(shù)1(HEAD~2)的修改
知識(shí)點(diǎn):^與~之間的區(qū)別文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-404447.html
當(dāng)存在多個(gè)分支時(shí),^可以用來(lái)選擇分支;
HEAD~i永遠(yuǎn)只選擇第i級(jí)父節(jié)點(diǎn)的第一個(gè)分支;
HEAD~i^2選擇第i級(jí)父節(jié)點(diǎn)的第二個(gè)分支;
以此類推;
HEAD^=HEAD^1=HEAD~1;
如果沒(méi)有分支,只有一條主線,則HEAD^^^=HEAD^1^1^1=HEAD~3,
如果該級(jí)節(jié)點(diǎn)有第二個(gè)分支,則表示為:HEAD^^^2 = HEAD~2^2
2.4 git diff hash值 與 git diff hash值1 hash值2
有些時(shí)候,我們可能需要將當(dāng)前代碼和歷史的某一個(gè)版本進(jìn)行比較,這個(gè)時(shí)候可以先通過(guò) git log 命令獲取到所有的歷史提交記錄文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-404447.html
到了這里,關(guān)于Git diff命令使用介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!