成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

分享一個重要的Git技巧,能保護核心代碼!

前段時間完成了一個核心代碼保護的功能,目標在關鍵代碼被修改及時同步給其他人,避免沒經過 review 就上線導致問題,提示的效果圖如下:

分享一個重要的Git技巧,能保護核心代碼!

在實現的過程中,用到一些平時使用不多的 Git 技巧,這篇文章來總結一下。

如何獲取當前提交用戶信息

這個比較簡單,通過 git config user.name 即可:

04318deMacBook-Pro % git config user.name zhangshixin
登錄后復制

git config 保存了很多配置信息,其中常用的有自定義快捷鍵、用戶信息、項目地址、分支信息等:

504318deMacBook-Pro % git config -l  //快捷鍵 begin >>> 我們可以定義自己的 git 快捷鍵 alias.st=status           alias.co=checkout alias.cb=checkout alias.p=pull alias.pr=pull alias.pu=push alias.cm=commit alias.br=branch alias.cm=commit alias.undo=reset alias.rbc=rebase alias.save=stash alias.pop=stash //快捷鍵 end <<< 我們可以定義自己的 git 快捷鍵  //用戶名稱和郵箱 begin >>> user.name=zhangshixin user.email=shixin.zhang@xxx.com //用戶名稱和郵箱 end <<<  //項目和分支信息 begin >>> remote.origin.url=git@gitlab.xxx:android/xxx.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master branch.Canary.remote=origin branch.Canary.merge=refs/heads/Canary //項目和分支信息 end <<<  pull.rebase=true    //默認 pull 是 merge 還是 rebase
登錄后復制

如何獲取當前分支

為了減少提示頻率,最好只檢測核心的分支的提交(包括 merge commit)。如何獲取當前分支呢?有一個簡單的方式:

git symbolic-ref --short HEAD
登錄后復制

這句命令主要包括兩個關鍵字:symbolic-refHEAD

symbolic-ref 可以讀取、修改和刪除符號引用。

什么是符號引用呢?它表示一個以 refs 開頭的文件(比如 refs/heads/develop),這個文件保存著本地每個分支當前所處 commit。

我們可以打開 git 項目的 .git 文件夾,在其中的 refs/heads 文件夾中會保存各個分支當前所指向的 commit:

分享一個重要的Git技巧,能保護核心代碼!

HEAD 指的是 .git/HEAD,就是一個文件,保存著當前指向的符號引用:

分享一個重要的Git技巧,能保護核心代碼!

因此 git symbolic-ref --short HEAD 的含義就是讀取 .git/HEAD 文件的內容,我這里就是 refs/heads/develop 文件,因此就得出當前分支是 develop 分支。

如何獲取本地未 push 的所有 commit

有時候我們會在本地提交多次后再 push,因此在攔截 push 時,需要獲取到當前要 push 的所有 commit 信息,然后獲取每個 commit 修改的文件。

獲取要 push 信息可以通過 git log @{u}.. --oneline:

504318deMacBook-Pro ShixinDemo % git log @{u}.. --oneline 4e4655b (HEAD -> master) 攔截跳轉 f947180 修改文件
登錄后復制

git log 非常強大,它可以有這些使用場景:

  1. 獲取本地和遠端的 commit 差異
  2. 獲取指定時間內的提交記錄,可以具體到誰、什么時候、修改了哪些
  3. 獲取具體某次提交修改的文件

上面我們使用的參數 @{u}.. 就是表示獲取本地和遠端的 commit 差異,然后 --oneline 表示不打印具體信息,只打印 short commit id 和 commit message。

如果要獲取指定時間內的提交記錄,可以這樣:

git log --pretty="%an(%cd) %h - %s" --since="2022-09-01" --no-merges --name-status
登錄后復制

命令執行結果:

504318deMacBook-Pro ShixinDemo % git log --pretty="%an(%cd) %h - %s" --since="2022-09-01" --no-merges --name-status zhangshixin(Fri Dec 16 22:34:49 2022 +0800) 4e4655b - 攔截跳轉  M       app/src/main/java/com/example/heicdemo/MainActivity.kt zhangshixin(Fri Dec 16 22:34:30 2022 +0800) f947180 - 修改文件  M       .idea/gradle.xml M       .idea/misc.xml D       .idea/runConfigurations.xml A       android10_dem_heic_output.heic A       app/src/main/assets/android10_dem_heic_output.heic R100    app/src/main/res/drawable/mushroom.jpg  app/src/main/assets/mushroom.jpg A       app/src/main/assets/mushroom.webp M       app/src/main/java/com/example/heicdemo/MainActivity.kt A       app/src/main/res/drawable/mushroom.webp M       app/src/main/res/layout/activity_main.xml
登錄后復制

pretty 的參數用于指定打印的內容和格式;since 參數用于指定查看時間范圍;no-merges 表示過濾掉 merge 時生成的額外 commit;name-status 表示展示出文件的修改狀態(M 表示修改;D 表示刪除;A 表示增加;R 表示重命名)。

如何獲取每個 commit 修改的文件

知道 commit ID 后,可以通過 git show --pretty="" --name-only $commitId 獲取這個 commit 影響的信息:

04318deMacBook-Pro ShixinDemo % git show --pretty="" --name-only 4e4655b   app/src/main/java/com/example/shixindemo/MainActivity.kt
登錄后復制

git show 可以用來查看 commit 的 commit message 和修改的文件、文件具體內容等信息。上面的代碼中我們使用了 name-only 參數表示只要查看修改的文件即可。

總結

這篇文章介紹了通過攔截 git push 時,獲取當前用戶、當前分支、未 push 的 commit 和修改的文件等命令,通過組合這些命令,就可以實現一個核心代碼保護功能了!

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
69无人区卡一卡二卡| 一面膜上边一面膜下边视频| 国产丝袜无码一区二区视频 | 老师扒开粉嫩粉嫩的泬| 国产美女被遭强高潮网站免费| XXXXX18日本人HDXX| 亚洲愉拍99热成人精品热久久| 学生妹流白浆喷水被草| 手机国产乱子伦精品视频| 欧洲熟妇色XXXX欧美老妇性| 久久亚洲中文字幕无码 | 玩弄JaPan白嫩少妇HD小说| 久久久久久久精品成人热小说 | 黑人巨大JEEP日本人| 国产成人一区二区三区| 中文乱码精品一区二区三区人妻| 亚洲AV无码精品色午夜在线观看| 天天狠天天透天干天干| 日日麻批免费40分钟无码| 欧美性白人极品HD| 年轻的嫂嫂2在线播放在线播放 | 女人另类牲交ZOZOZO| 老赵抱着媛媛在厨房做| 人人爽人人澡人人人妻百度| 欧美国产成人久久精品| 内射极品少妇一区二区AV| 日韩av在线一区二区| 日本AⅤ精品一区二区三区日| 无码毛片视频一区二区三区| 日本工口里番H全彩无遮挡| 女人浓毛巨茎ⅩXXOOO| 色嗨嗨AV一区二区三区| 色舞月亚洲综合一区二区| 日日摸日日碰夜夜爽暖暖视频| 午夜亚洲国产理论片中文飘花 | 亚洲成A人片在线不卡一二三区| 无码人妻少妇色欲AV一区二区| 亚洲欧美日韩综合一区二区| 亚洲日韩精品欧美一区二区一| 亚洲国产精品一区二区第一页 | 日本JAPANESE护士人妻| 亚洲阿V天堂无码2020| 亚洲H在线播放在线观看H| 18VIDEOSEX性欧美| 综合精品欧美日韩国产在线 | 精品人妻久久久久久888| 加勒比色综合久久久久久久久 | 亚洲AV成人片色在线观看www| 羞羞午夜爽爽爽爱爱爱爱人人人| 制服丝袜另类专区制服| 337P日本欧洲亚洲大胆裸体艺| 51福利国产在线观看午夜天堂 | 色狠狠色噜噜AV一区| 亚洲日韩一页精品发布| 东京热人妻系列无码专区| 丰满老师少妇久久久久久1| 国产精品爆乳奶水无码视频| 国精产品一二二线网站| 精品人妻系列无码人妻不卡| 人人爽天天碰天天躁夜夜躁| 亚洲欧美日韩国产精品一区二区| 成人伊人亚洲人综合网站| 国产AV无码专区亚洲AⅤ| 国产精品一区在线观看你懂的| 后入骚妇内射AV| 浪荡人妻共32部黑人大凶器电影 | 人妻精品久久一区二区av| 日本大片免费观看视频| 亚洲欧美黑人深喉猛交群| 中国鲜肉GAY高中XX禁18网| 国产精品玖玖玖在线资源| 精品国产一二三产品区别在哪| 噜噜狠狠色综合久色A站网址 | 亚洲最大av在线| 50岁露脸老熟女88AV| 国精一二二产品无人区免费应用 | JΑPΑNESEHD熟女熟妇伦| 成人免费A级毛片无码片在线播放 成人免费A级毛片无码片2022 | 国产亚洲美女精品久久久2020| 久久99久久99精品免观看吃奶| 麻花传媒MD0076在线入口| 人与禽性7777777| 影音先锋女人AV鲁色资源网久久| 啊轻点灬大JI巴太粗熟妇| 国产高潮流白浆喷水在线观看| 欧美日韩久久中文字幕 | 中国熟妇内谢69XXXXX| 激情久久AV一区AV二区AV三| 为了升职丈夫把我献给他们领导 | 欧洲老人毛多BBWBBWBBW| 亚洲男女一区二区三区| 国产精品一区二区高清在线| 日韩人妻无码免费视频一区二区三区 | 国产亚洲精品一区在线播放| 少妇高潮喷水正在播放| 亚洲精品午夜久久久伊人| 99久久久无码国产精品性| 国产成人精品2021| 久久久受WWW免费人成| 人人爽人人操人人精品| 中文字幕人妻被公上司喝醉在线| 国产23在线 | 传媒麻豆| 久久久精品妓女影院妓女网 | 中文字幕乱人伦高清视频 | 丰满少妇人妻无码| 热RE99久久6国产精品免费| 小雪的L3又嫩又紧又多水图| 337P粉嫩胞人体高清视频免费| 久久WWW成人免费网站| 亚洲AV成人无码久久精品黑人 | 台湾MD豆传媒一区二区| 一个添下面两个吃奶把腿扒开| 狠狠色综合久久丁香婷婷| 无码熟妇人妻AV在线影院| 最新版天堂资源官网在线| 久久久亚洲熟妇熟| 亚洲熟妇色XXXXX爽| 丰满人爽人妻AXXXXHD| 日本丰满少妇XXXX| Chinese国产HD精品实拍| 激情五月色综合国产精品| 亚洲AV日韩AV成人AV| 啊灬啊灬啊灬快灬深高潮了亚洲乱色视频在线观看 | 免费精品99久久国产综合精品| 无码国产精品一区二区免费16| 粉嫩呦福利视频导航大全| 日韩人妻AV在线| 顶级欧美做受XXX000| 蜜臀精品无码AV在线播放 | 免费拗女网站1300部| 1024久久亚洲精品无码| 妺妺窝人体色www聚色窝图片| 性FREE毛茸茸VIDEOS| 国产精品午睡沙发系列| 午夜麻豆国产精品无码| WWW.色五月.COM| 强被迫伦姧惨叫VIDEO| 凹凸视频免费在线| 久久久久精品国产亚洲AV蜜桃| 亚洲色精品AⅤ一区区三区| 久久久久亚洲精品天堂| 中文成人无字幕乱码精品区| 女人高潮喷水毛片免费| YY111111少妇影院无码老| 日韩AV无码AV免费AV不卡| 国产嗷嗷叫高潮快点再用力| 午夜免费福利小电影| 狠狠色狠狠色综合久久| 亚洲综合国产精品第一页| 免费AV资源网站| 把女人弄爽特黄A大片片| 熟女高潮喷水一区二区三区| А√天堂中文最新版在线种子 | 无码人妻精品一区二区蜜桃温柔乡 | 亚洲男女一区二区三区| 蜜臀AV午夜一区二区三区 | 国产成人无码AⅤ片在线观看视频 国产成人无码AⅤ片在线观看你 | 人人爽人人爽人人爽人人片AV| 公与2个熄乱理在线播放| 亚州日本乱码一区二区三区| 久久WWW成人看片免费不卡| 19岁MACBOOKPRO日本| 日韩AV无码中文一区二区三区| 国产精品第一区揄拍无码| 亚洲国产无套无码AV电影| 麻豆乱码1区2区新区| 八戒八戒手机在线高清观看WWW| 天堂中文А√在线| 精品欧美黑人久久久久| 2018AV无码视频在线播放| 肉欲扒灰合集100篇| 国产在线精品一区二区三区| 少妇与子乱A级全毛片| 国产亚洲日韩网曝欧美台湾| 一出一进一爽一粗一大小说| 欧美熟妇精品一区二区三区 | 色妞WWW精品视频| 国产午夜无码片免费| 在出租屋里被强高H| 久久久久久久性潮| 99久久无码一区人妻A黑| 十八18禁国产精品WWW| 精品国产乱码一区二区三区APP | 亚洲AV无码一区毛片AV| 国产精品久久久久精品香蕉| 亚洲日韩乱码中文无码蜜桃臀网站| 欧美激欧美啪啪片免费看| 国产精品久久久久久精品电影| 亚洲最大的av网站| 人与各种动ZZZ0O0OⅩⅩX| 国内精品免费视频自在线拍 | 无遮挡呻吟娇喘视频免费播放| 久久久久国产精品人妻AⅤ蜜臀| 本道久久综合无码中文字幕| 人妻无码一区二区19P| 爆乳无码AV一区二区三区小说| 日本亲近相奷中文字幕| 护士HD老师FREE性Ⅹ| H国产小视频福利免费视频| 日韩AV无码中文无码不卡电影|