git commit 格式化代碼

團(tuán)隊(duì)合作項(xiàng)目,使用git時(shí)會(huì)發(fā)生這種情況 : 每個(gè)人的代碼格式不同,對(duì)比工具再做對(duì)比的時(shí)候常常會(huì)當(dāng)作沖突來(lái)處理垒酬,雖然有些工具會(huì)有明顯的提示,但還是會(huì)占用自己太多時(shí)間件炉。同時(shí)勘究,一個(gè)團(tuán)隊(duì)保持一致的代碼風(fēng)格和規(guī)范,甚至是工具斟冕,都是有必要的口糕。

經(jīng)過(guò)一頓 google 之后, 發(fā)現(xiàn)git 的 hook pre-commit這個(gè)腳本可以指定磕蛇,再commit之前插入一些腳本執(zhí)行景描,要是再這個(gè)腳本中加上對(duì)代碼的格式化,就解決了這個(gè)問(wèn)題秀撇。

1超棺、代碼的格式化工具我選擇了google提供的代碼格式化工具。
項(xiàng)目地址在這里 https://github.com/google/google-java-format
通過(guò)文檔給的方式呵燕,在android studio下載一個(gè)插件

Paste_Image.png

再設(shè)置中配置棠绘,這里的style我選的是 aosp 的style,因?yàn)槭莂ndroid 項(xiàng)目,并沒(méi)有直接使用默認(rèn)的氧苍。配置好之后夜矗,我再對(duì)代碼進(jìn)行格式化的時(shí)候,就使用了google-java-format让虐,不再是之前再ide中配置的那個(gè)了紊撕。

Paste_Image.png

2、接下來(lái)寫(xiě)shell
我們?cè)陧?xiàng)目根目錄中可以找到.git 下的hooks文件夾赡突。里面存在一堆文件对扶,就像這樣。


Paste_Image.png

可以創(chuàng)建一個(gè)空文件惭缰,名字為pre-commit辩稽。這里我直接貼上一段代碼

#!/bin/bash
#
array=`git diff-index --name-only HEAD`

for name in ${array}
do
    extension=${name##*.}
    if [[ ${extension} == "java" || ${extension} == "xml" || ${extension} == "kt" ]];then
      D:\\Applications\\tiny-tool\\formatjava.cmd ${name}
      if [ $? -eq 0 ]; then
      echo "format ok" ${name}
      else exit 1
      fi
    fi
done

exec git add ./

大兄弟,別的都好說(shuō)从媚, D:\\Applications\\tiny-tool\\formatjava.cmd ${name}有點(diǎn)看不明白,那是因?yàn)檫€差一個(gè)文件沒(méi)有貼上來(lái)患整。就是formatjava.cmd這個(gè)文件

@ECHO OFF
java -jar D:\Applications\tiny-tool\google-java-format-1.3-all-deps.jar --replace %*
@ECHO ON

看這個(gè)工具還挺好用拜效,可以直接格式化java代碼,直接寫(xiě)一個(gè)cmd放到系統(tǒng)path中去各谚,平時(shí)也能使用紧憾。

這樣,再git commit 之后昌渤,會(huì)自動(dòng)將提交的java文件進(jìn)行格式化赴穗。這樣就在本地和遠(yuǎn)程都使用同一套代碼規(guī)范了。

ps:有個(gè)問(wèn)題膀息,google-java-format-1.3-all-deps.jar這個(gè)版本的會(huì)把java doc 也格式化了般眉, 蛋疼, 還好有廣大網(wǎng)友的幫助
https://github.com/Kurt-Bonatz/google-java-format/tree/skip_javadoc_formatting
這個(gè)提交已經(jīng)添加到了google的代碼中了潜支, 就等著google更新甸赃, 或者直接把代碼擼下來(lái)編譯

c2adb464jw1edbze0mbitg2064064kjb.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市冗酿,隨后出現(xiàn)的幾起案子埠对,更是在濱河造成了極大的恐慌,老刑警劉巖裁替,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件项玛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡弱判,警方通過(guò)查閱死者的電腦和手機(jī)襟沮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人臣嚣,你說(shuō)我怎么就攤上這事净刮。” “怎么了硅则?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵淹父,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我怎虫,道長(zhǎng)暑认,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任大审,我火速辦了婚禮蘸际,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘徒扶。我一直安慰自己粮彤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布姜骡。 她就那樣靜靜地躺著导坟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪圈澈。 梳的紋絲不亂的頭發(fā)上惫周,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音康栈,去河邊找鬼递递。 笑死,一個(gè)胖子當(dāng)著我的面吹牛啥么,可吹牛的內(nèi)容都是我干的登舞。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼饥臂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼逊躁!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起隅熙,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤稽煤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后囚戚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體酵熙,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年驰坊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匾二。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖察藐,靈堂內(nèi)的尸體忽然破棺而出皮璧,到底是詐尸還是另有隱情,我是刑警寧澤分飞,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布悴务,位于F島的核電站,受9級(jí)特大地震影響譬猫,放射性物質(zhì)發(fā)生泄漏讯檐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一染服、第九天 我趴在偏房一處隱蔽的房頂上張望别洪。 院中可真熱鬧,春花似錦柳刮、人聲如沸挖垛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)晕换。三九已至,卻和暖如春站宗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背益愈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工梢灭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蒸其。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓敏释,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親摸袁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钥顽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,322評(píng)論 25 707
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)靠汁,斷路器蜂大,智...
    卡卡羅2017閱讀 134,715評(píng)論 18 139
  • 前不久以閨蜜姿態(tài)處了兩年的A先生猝不及防地跟我表白了。而聽(tīng)到這話(huà)后我的反應(yīng)蝶怔,除了尷尬懵圈更多的是不知所措奶浦。 ...
    謝笑笑呀閱讀 902評(píng)論 1 1
  • 1澳叉、昨天晚上聽(tīng)課半小時(shí),我感覺(jué)自己對(duì)知識(shí)點(diǎn)的把握比原來(lái)好多了。昨晚聽(tīng)的是刑法精講班視頻18成洗,實(shí)在不好意思說(shuō)這個(gè)進(jìn)度...
    阿白不急閱讀 212評(píng)論 0 0
  • 老子曾說(shuō):“不尚賢,使民不爭(zhēng)碌燕∥笾ぃ” 我想,老子說(shuō)的這個(gè)情況修壕,是在理想社會(huì)愈捅,天下大同。 我們國(guó)家的理想社會(huì)是共產(chǎn)主義社...
    懵懂無(wú)知少年郎閱讀 689評(píng)論 0 0