成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何用Git工具發現和解決開發項目中的痛點

開發 開發工具
在日常開發和項目管理過程中往往不可避免地存在很多痛點。如果能及時發現和解決掉這些問題,可以極大提高開發我們的開發效率和減輕項目的技術債務,減少項目風險。很多減輕技術債務的工具都是預防性的。

 在日常開發和項目管理過程中往往不可避免地存在很多痛點。如果能及時發現和解決掉這些問題,可以極大提高開發我們的開發效率和減輕項目的技術債務,減少項目風險。很多減輕技術債務的工具都是預防性的。比如編譯器,lint,靜態分析工具等。這些工具都通過防止開發人員簽入代碼碼,這一方面限制了開發人員的自由,引起不適,而且可能會導致一些潛在的問題。而且盡管通過管制和審核流程似乎應該是完美無瑕的代碼,但是實際上并不一定會帶來功能良好的系統。

軟件開發的過程不僅涉及開發人員之間以及開發人員與他人團隊之間的交互,如何快速的無聲的項目的痛點這是個問題。如果你的開發項目是采用git管理,那么Git本身就能給我們很多好用的工具,本文蟲蟲就給大家講講git中自帶哪些解決痛點的工具。

 

[[318813]]

 

git log 發現最常改變為文件

我們時常忽略一個事實是,我們經常修改的,修改最多的文往往是問題發生最多的,而這些文件往往就是開發和項目的痛點。我們要找到這些痛點,或者熟悉一個未知的項目不知道如何入手的時候,首先可以做的就是找出項目中改變最多,提交commit最頻繁的文件。找出倉庫最常變化的文件(top10)命令為:

 

  1. git log --format=format: --name-only | egrep -v '^$' | sort | uniq -c | sort -rg | head -10 

比如我們最開源安全項目OpenSSH查看一下top10變化文件:

 

如何用Git工具發現和解決開發項目中的痛點

 

我們可以看到除了,版本更新文檔ChangeLog以外,變化第二的是configure.ac這個文件是項目編譯文件makefile的配置文件。源碼里面修改最多的是sshd.c是sshd服務器端的源代碼文件。

可以看到這個命令很有用,但是很長不好記,怎么辦?其實也好辦,那就是加一個git別名即可。vim打開~/.gitconfig配置文件,在[Aliases]部分增加以下配置項:

 

  1. cctop10 = "!git log --format=format: --name-only | egrep -v '^$' | sort | uniq -c | sort -rg | head -10" 

 

如何用Git工具發現和解決開發項目中的痛點

 

 

這樣,對一個倉庫我們只需執行這樣做是按照更改的數量對項目中的文件進行排序,并獲取前10個文件。隨著時間的推移,這些文件中發生的更改最多,因此,這些文件中需要更改的機會更大。

git blame 找出痛點的來源

 

如何用Git工具發現和解決開發項目中的痛點

 

在知道變化最多的文件這個痛點后,我們需要詳細了解痛點過程。或者項目的另一個痛點是,發現項目文件被某人修改后就崩潰了,再也跑不起來了。想找出是誰修改的,大家來鄙視他,或者譴責(blame)它。這就需要一個git另一個利器blame,他就是告訴我們這個問題行(變化)是誰引入的。比如我們同樣以openssh 項目為例,查看一下sshd.c的文件的變化歷史

git blame sshd.c:

 

如何用Git工具發現和解決開發項目中的痛點

 

如上我們可以看到基本上每一行代碼出現的現場,包括了commitID、提交人、詳細時間和代碼。

如果文件較大,可以通過"-L"參數指定開始和結束行,比如sshd.c文件的200行開始的20行內容的來源。

 

如何用Git工具發現和解決開發項目中的痛點

 

關于git blame 注意:

如果一個commitID前面有^號,那么自文件創建以來,對應的行就從沒修改過。

blame也可以跟蹤跨文件的行變化。比如對一個大文件代碼重構或者配置文件被分散到多個小文件,那么會顯示大文件中的原始提交和大文件的名稱。可通過-C選項來實現。

git bisect 找到引入問題的commit

如果知道是哪個行代碼,那次commit引入的問題,我們可以用blame揪出提交問題的人。但是如果不知道是哪兒引入的問題,需要找出引入問題的提交。則需要用一個git 工具bisect。它也很簡單用二分發不斷測試回溯到中間的commit點,直到找到這個問題引入點。

 

如何用Git工具發現和解決開發項目中的痛點

 

git bisect start [終點] [起點]

終點為你確保有問題的commit(如果不能確定那就是現在HEAD),起點為你確保的之后才出現的問題(如果不確定就用最開始一次commits)。

執行這個命令后,項目倉庫的文件狀態會調到這兩次的中間commit,這時候測試代碼,如果項目運行OK,就執行git bisect good。如果還是報錯,則執行git bisect bad。

執行后,git會根據good或者bad狀態跳轉到后半段commit的一半(即3/4)commit處,或者1/4 commit處

繼續測試代碼,標識good或者bad

以此類推直到找到引入問題commit。

總結:

git是一個天生為開發而生的工具,生來就是為了幫助我們解決痛點的。而且git中很多工具就是對應解決我們日常具體痛點的,善用他們不光可以讓我日常生活更舒服,也能極大提高開發效率。"工欲善其事,必先利其器","磨刀不誤砍柴工"希望我們會用并且善用這些工具。

責任編輯:華軒 來源: 今日頭條
相關推薦

2020-09-27 10:35:22

Vue前端代碼

2024-02-01 09:58:40

Java內存泄漏

2014-04-08 09:49:27

PostgreSQL雙緩沖

2024-01-30 10:12:00

Java內存泄漏

2021-06-17 10:19:48

獲客分析數據流量

2018-11-22 15:07:17

代碼github程序

2017-10-10 15:14:23

BUGiOS 11蘋果

2020-09-11 09:10:28

區塊鏈版權文化產業數字化

2022-07-01 16:08:32

區塊鏈區塊鏈技術

2015-06-16 16:26:27

2024-04-03 09:03:05

項目分支管理

2021-04-29 18:51:58

Git管理方式

2011-05-07 09:07:53

功能點

2017-01-12 09:40:47

2016-09-23 20:46:53

2018-02-01 09:00:21

2022-03-26 13:31:18

項目node變量

2023-03-27 11:37:29

2024-02-05 12:01:34

2013-03-31 14:10:55

敏捷開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久免费高清 | 日韩精品人成在线播放 | 国产成人精品一区二区三区视频 | 成人免费观看视频 | 国产精品日女人 | 欧美日韩一区二区在线 | 性高湖久久久久久久久aaaaa | 亚洲成人日韩 | 久久久久久久久久久久久9999 | 国产精品99久久久久久www | 国产成人精品午夜视频免费 | 精品一区二区三区四区在线 | 国产激情精品 | 久久国产精品免费一区二区三区 | 天天综合久久 | 日韩在线播放视频 | 国外成人在线视频 | 狠狠插狠狠操 | 亚洲精品天堂 | 国产免国产免费 | 日韩国产欧美视频 | 福利视频一区 | 国产精品一区二区三区免费观看 | 99热国产免费 | 夜夜爽99久久国产综合精品女不卡 | 91久久精品一区二区二区 | 久久精品久久久久久 | www.午夜| 国产97在线看 | 国内自拍偷拍 | 亚洲人成网亚洲欧洲无码 | 天堂av资源| 午夜精品视频在线观看 | 国产中文在线观看 | 国产精品欧美一区二区 | 一级毛片在线视频 | 成人免费视频一区二区 | 亚洲高清av在线 | 国产精品毛片一区二区在线看 | 免费毛片在线 | 综合色站导航 |