溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用git實現(xiàn)快速定位提交

發(fā)布時間:2021-12-21 14:05:29 來源:億速云 閱讀:338 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“怎么用git實現(xiàn)快速定位提交”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

是誰動了我的代碼

誰動了我的代碼?

誰的 bug 指到了我的頭上?

團隊合作時,經(jīng)常會出現(xiàn)這樣的問題。這時候可以使用 git blame <file> 來定位代碼的最后一次修改。但是,有一個問題,這并不能看出本行代碼以前的修改。比如項目組中某人對全部代碼進行了格式化,git blame 就失去了作用。此時,可以與另一個有用的命令 git log -p <file> 結(jié)合使用,可以查看文件的更改歷史與明細(xì),最終找到這個鍋究竟應(yīng)該由誰來背。

git blame -L 10,12 package.json
git log -p -L 10,12:package.json
  

快速切換合并分支

當(dāng)你經(jīng)常工作于 A 與 B 兩個分支,需要來回切。這時命令應(yīng)該是 git checkout A,但這里有一個更簡單的命令,git checkout -,表示切到最近的一次分支。如果你需要把 B 分支的內(nèi)容合并過來,可以使用 git merge -。

題外話,cd - 代表進入最近目錄,也相當(dāng)實用。

git checkout -
git merge -
   

統(tǒng)計項目

統(tǒng)計項目各個成員 commit 的情況,比如你可以查看你自己的項目的 commit 數(shù)以及他人對你項目的貢獻數(shù)

git shortlog -sn
git shortlog -sn --no-merges      # 不包含 merge commit
   

快速定位提交

如果你的 commit message 比較規(guī)范,比如會關(guān)聯(lián) issuse 或者當(dāng)前任務(wù)或者 bug 的編號,此時根據(jù) commit message 快速定位:git log --grep "Add"。

如果你的 commit message 不太規(guī)范,只記得改了哪幾行代碼,此時也可以根據(jù)每次提交的信息查找關(guān)鍵字,是 git log -S "setTimeout"

同時,也可以根據(jù)作者,時間來輔助快速定位。

git log --since="0 am"         # 查看今日的提交
git log --author="shfshanyue"     # 查看 shfshanyue 的提交
git log --grep="#12"              # 查找提交信息中包含關(guān)鍵字的提交
git log -S "setTimeout"           # 查看提交內(nèi)容中包含關(guān)鍵字的提交
   

快速定位字符串

如何查找包換關(guān)鍵字的全部文件?

使用 VS Code 可以全局搜索,使用 grep 也可以通過 grep -rn <keyword> 來全局搜索。

不過,它們也會連帶搜索忽略文件,比如前端著名的兩個文件夾 node_modulespublic(dist/build)。雖然 grep 可以指定 --exclude 來忽略文件,不過 git 來的更方便一些。

這時,可以使用 git grep <keyword> 來解決這個問題,另外 ag 也可以解決這個問題。

grep -rn <keyword>
grep -rn <keyword> --exclude config.js --exclude-dir node_modules
git grep <keyword>
ag <keyword>

“怎么用git實現(xiàn)快速定位提交”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

git
AI