精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Git 20 周年的 20 個(gè) Git 技巧

開發(fā) 前端
Git 于 2005 年 4 月 7 日發(fā)布,至今已整整 20 年!為了慶祝這一里程碑,我整理了 20 個(gè) Git 技巧,幫助你更高效地使用 Git!

Git 于 2005 年 4 月 7 日發(fā)布,至今已整整 20 年!為了慶祝這一里程碑,我整理了 20 個(gè) Git 技巧,幫助你更高效地使用 Git!

這些技巧沒有特定的順序,從初學(xué)者到高級用戶都能從中受益。希望它們對你有用!

Git 20 周年

0. 正確設(shè)置個(gè)人信息

首先,全局配置你的姓名和郵箱:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

如果需要為不同的倉庫使用不同的郵箱(例如工作郵箱和個(gè)人郵箱),可以按倉庫配置:

git config user.email "work.email@company.com"

額外提示:設(shè)置 GPG 簽名以驗(yàn)證你的提交!簽名可以讓你的提交更加安全,因?yàn)樗?yàn)證了提交是由你完成的。了解更多,可以參考我的書 Docker 和 Kubernetes 安全。

1. 使用 .mailmap 清理作者名稱

Git 通過姓名和郵箱來跟蹤作者。有時(shí)可能會(huì)有人誤用不同的姓名或郵箱提交,這會(huì)讓提交歷史變得混亂。

在這種情況下,我們可以使用 Git 的 mailmap 功能來統(tǒng)一這些信息。在倉庫根目錄下創(chuàng)建一個(gè)名為 .mailmap 的文件,并添加如下內(nèi)容:

Proper Name <proper@example.com> <alias@example.com>

現(xiàn)在,git shortlog 和其他命令將顯示干凈的作者列表。

2. 新功能始終使用分支

避免直接提交到 main 或 master 分支。為每個(gè)功能和修復(fù)創(chuàng)建小的主題分支:

git switch -c feature/new-login

我個(gè)人會(huì)使用 GitHub 用戶名、問題編號和簡短的描述來命名分支:

git switch -c aerabi/1234-new-login

之后,你可以在提交信息中提到問題編號,GitHub 或 GitLab 會(huì)自動(dòng)將其鏈接到問題。你還可以通過在提交信息中添加 Fixes #1234 來自動(dòng)關(guān)閉問題:

Add new login page

Closes #1234

這樣提交后,讀者可以通過查看問題來了解提交的上下文。

3. 跨分支 Cherry-Pick 提交

如果你想將一個(gè)分支的某個(gè)提交應(yīng)用到另一個(gè)分支,可以使用 cherry-pick。首先,記下你要 cherry-pick 的提交哈希,可以通過 git log 查看并復(fù)制。

然后,切換到目標(biāo)分支并執(zhí)行:

git cherry-pick <commit-hash>

該提交會(huì)被添加到新分支,你可以繼續(xù)在該分支上工作。

4. 從另一個(gè)倉庫 Cherry-Pick 提交

你甚至可以從另一個(gè)倉庫 cherry-pick 提交:

git remote add other-repo <repo-url>
git fetch other-repo
git cherry-pick <commit-hash>

完成后,可以移除該遠(yuǎn)程倉庫。

5. 使用 git switch 和 git restore 替代 git checkout

checkout 在過去是一個(gè)被過度使用的命令,它被用于切換分支、恢復(fù)文件等。現(xiàn)在,我們有了 git switch 和 git restore 來使操作更清晰:

git switch branch-name         # 切換分支
git switch -c new-branch       # 創(chuàng)建并切換到新分支
git restore file.txt           # 丟棄文件的更改
git restore --staged file.txt  # 取消暫存文件

這些命令更加明確且用戶友好!

6. 理解三種合并方式

  • 三方合并:常規(guī)合并,會(huì)創(chuàng)建一個(gè)合并提交。
  • 快進(jìn)合并:當(dāng)沒有分叉時(shí)自動(dòng)進(jìn)行,即分支領(lǐng)先于基礎(chǔ)分支。
  • 壓縮合并:在合并前將所有提交壓縮為一個(gè)(適用于 PR)。

在 GitHub 和 GitLab 中,你可以配置 PR 的默認(rèn)合并方式。

如果不確定使用哪種方式,建議使用壓縮合并。它保持歷史記錄干凈,更易于理解。

如果你是高手,可以將 rebase 和快進(jìn)作為默認(rèn)的合并方式。在合并前,將你的分支 rebase 到基礎(chǔ)分支:

git pull --rebase origin master

使用 rebase 和快進(jìn),你可以保持功能分支的歷史記錄干凈。

7. 使用 git add -p 選擇性暫存更改

與其暫存所有更改,不如選擇性地暫存部分更改:

git add -p

這種方式是交互式的且安全!

8. 安全撤銷 Rebase

如果你在 rebase 過程中搞砸了,可以撤銷它:

git reflog

找到 rebase 開始前的提交,然后重置:

git reset --hard <commit-hash>

9. 使用交互式 Rebase 清理歷史

使用交互式 rebase 來重新排序、壓縮或編輯提交:

git rebase -i HEAD~5

這是保持提交歷史整潔的秘訣。使用交互式 rebase,你可以:

  • 壓縮提交
  • 刪除提交
  • 重新排序提交
  • 重寫提交信息

10. 使用 --autosquash 加速 Rebase

當(dāng)添加一個(gè)提交來修復(fù)之前的提交時(shí),你可以將其標(biāo)記為 "fixup" 或 "squash" 提交:

git commit --fixup <commit-hash>

提交信息應(yīng)以 fixup! 或 squash! 開頭。這樣可以在 rebase 時(shí)自動(dòng)壓縮它們。

在進(jìn)行交互式 rebase 時(shí),可以使用 --autosquash 選項(xiàng):

git rebase -i --autosquash

Git 會(huì)自動(dòng)將這些提交移動(dòng)到正確的位置,并標(biāo)記為壓縮或修復(fù)。

11. 使用 --update-refs 處理分支鏈

如果你從一個(gè)分支創(chuàng)建了另一個(gè)分支,并 rebase 了基礎(chǔ)分支,通常需要手動(dòng) rebase 所有依賴分支。但有了 --update-refs,你就不需要這么做了:

git rebase --update-refs

它會(huì)自動(dòng)更新子分支。

12. 使用 git stash --keep-index

只需要暫存未暫存的更改?使用:

git stash push --keep-index

它會(huì)保留你已暫存的工作。

13. 創(chuàng)建空提交

有時(shí)你可能需要?jiǎng)?chuàng)建空提交來測試或觸發(fā) CI/CD 流水線。你可以這樣做:

git commit --allow-empty -m "Trigger deployment"

如果是為了創(chuàng)建部署標(biāo)記,可以使用標(biāo)簽代替:

git tag -a v1.0 -m "Deployment marker for version 1.0"

14. 清理未跟蹤的文件

快速刪除未跟蹤的文件(小心使用!):

git clean -fd

可以先使用 -n 進(jìn)行試運(yùn)行:

git clean -fdn

這個(gè)命令會(huì)顯示將要?jiǎng)h除的內(nèi)容,而不會(huì)實(shí)際刪除。

15. 同時(shí)獲取所有遠(yuǎn)程倉庫

如果你有多個(gè)遠(yuǎn)程倉庫:

git fetch --all

這對于 fork 非常有用。

16. 查看分支歷史圖

使用以下命令查看分支圖:

git log --oneline --graph --all --decorate

你也可以為其創(chuàng)建別名:

git config --global alias.graph "log --oneline --graph --all --decorate"

然后你可以使用:

git graph

17. 添加別名節(jié)省時(shí)間

厭倦了輸入冗長的 Git 命令?添加別名:

git config --global alias.enforce "push --force-with-lease"

現(xiàn)在 git enforce 等同于 git push --force-with-lease,它用于推送更改,同時(shí)確保不會(huì)覆蓋其他人的更改。

永遠(yuǎn)不要使用 git push --force!

18. 使用 git worktree 進(jìn)行多分支工作

與其來回切換分支,你可以同時(shí)檢出多個(gè)分支:

git worktree add ../branch-folder branch-name

Worktree 非常適合同時(shí)測試多個(gè)分支,而無需來回切換。

19. 使用 git bisect 查找 Bug

如果你的代碼中有 Bug,可以使用 git bisect 來找到引入 Bug 的提交。這是對提交歷史的二分搜索。

git bisect start
git bisect bad # 當(dāng)前提交是壞的
git bisect good <commit-hash> # 最后一個(gè)已知的好提交

然后,Git 會(huì)檢出中間的提交。你可以測試每個(gè)提交并標(biāo)記為好或壞:

git bisect good # 如果提交是好的
git bisect bad # 如果提交是壞的

例如,你可以運(yùn)行測試來查看 Bug 是否存在。一旦找到引入 Bug 的提交,可以重置 bisect:

git bisect reset

這將返回到原始分支。

20. 閱讀之前的技巧

Git 20 歲生日快樂!??

責(zé)任編輯:武曉燕 來源: 前端小石匠
相關(guān)推薦

2025-02-28 08:30:00

Git開發(fā)命令

2024-10-28 16:06:50

2021-01-31 23:56:49

JavaScript開發(fā)代碼

2023-05-24 16:39:30

CSS技巧開發(fā)

2020-12-09 11:52:28

Python字符串代碼

2018-05-04 09:14:09

Git技巧shell命令

2018-12-07 10:30:50

盤點(diǎn)CSS前端

2020-07-25 20:01:45

CSS前端

2023-01-17 07:45:09

2021-04-20 20:36:14

Git家目錄Linux

2020-07-23 07:27:50

編程學(xué)習(xí)技術(shù)

2021-06-17 07:45:35

Javascript 技巧效率

2023-10-08 13:59:56

Git開發(fā)

2025-04-09 08:50:00

Linus軟件開發(fā)

2012-02-14 23:00:09

SUSE Linux

2012-03-19 09:25:41

SUSE

2018-04-15 15:43:46

Git技巧命令

2020-08-25 23:06:33

開發(fā)技能代碼

2021-07-29 11:30:31

GitLinux命令

2022-12-06 17:07:40

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

精品人妻无码一区二区色欲产成人| 欧美成人在线免费| 国产成a人亚洲精v品在线观看| 国产又粗又猛又爽又| 九色成人国产蝌蚪91| 欧美午夜女人视频在线| 亚洲精品免费在线看| www.97av.com| 在线成人国产| 亚洲女人天堂av| 一级片视频免费观看| 国产精品国产高清国产| 国产视频一区欧美| 在线视频日韩精品| 男女视频在线观看网站| av成人影院在线| 久久综合九色欧美综合狠狠| 99精品久久只有精品| 777欧美精品| 最近看过的日韩成人| 中文字幕精品一区二区精| 久久精品亚洲人成影院| 91精品国产一区二区三区蜜臀| 制服丝袜综合日韩欧美| 日本xxxxwww| 日韩黄色免费电影| 欧美黄色片视频| 老鸭窝一区二区| 国产精品videossex撒尿| 亚洲私人影院在线观看| 久久国产精品高清| 一级片在线观看视频| 在线成人黄色| 国产午夜一区二区| 国产色视频在线播放| 黄色影院在线看| 国产精品欧美一级免费| 国产经典一区二区三区| 中文字幕av在线免费观看| 亚洲经典自拍| 亚洲人成欧美中文字幕| 1314成人网| 色婷婷综合久久久中字幕精品久久 | 蜜桃av一区二区在线观看| 欧美高清视频免费观看| 99久久99久久精品免费| 欧美黑人巨大videos精品| 欧美在线观看你懂的| 日本韩国欧美在线观看| 五月香视频在线观看| 久久久精品综合| 国产精品日韩欧美一区二区三区| 在线观看免费视频一区| 亚洲国产一区二区三区a毛片| 一区二区欧美激情| 成人无码www在线看免费| 日日夜夜精品视频| 一本大道av一区二区在线播放| 人妻互换免费中文字幕| 国产一二区在线| 国产精品网站一区| 久久综合久久久| 天天操天天干天天| 国内精品自线一区二区三区视频| 国产精品www色诱视频| 欧美a∨亚洲欧美亚洲| 激情国产一区| 欧美日本亚洲视频| www.日本高清视频| 五月天亚洲色图| 亚洲国产欧美一区二区丝袜黑人 | 欧美亚洲另类激情另类| 久久久久久久国产视频| 91偷拍一区二区三区精品| 亚洲欧洲午夜一线一品| 久久精品一区二区免费播放 | 亚洲av人人澡人人爽人人夜夜| 国产高清不卡| 精品女同一区二区三区在线播放| www.亚洲视频.com| av剧情在线观看| 午夜激情一区二区三区| 被灌满精子的波多野结衣| 波多野结衣在线播放| 香蕉加勒比综合久久| 免费看日本毛片| 欧美日韩色网| 亚洲h在线观看| 免费毛片网站在线观看| 在线亚洲人成| 欧美撒尿777hd撒尿| 日韩手机在线观看视频| 成人av色网站| 91精品国产91久久综合桃花| 国产又粗又猛又爽又黄| 久久夜色电影| 亚洲精品乱码久久久久久金桔影视 | 欧美 国产 综合| 韩国成人动漫| 欧美日韩一卡二卡三卡 | 亚洲不卡1区| 国产青青草在线| 亚洲人成在线观看一区二区| www.av蜜桃| 美女网站视频一区| 欧美一区二视频| 污污污www精品国产网站| 九色精品国产蝌蚪| 美女av一区二区三区| 午夜精品一区二区三区视频| 亚洲视频一二| 欧美在线视频观看免费网站| 亚洲资源在线播放| 粉嫩欧美一区二区三区高清影视| 精品久久蜜桃| 一级日本在线| 午夜激情一区二区三区| 亚洲老女人av| 久久中文资源| 国产亚洲xxx| 欧美成人免费看| 老牛嫩草一区二区三区日本| 国产欧美在线视频| 西西人体44www大胆无码| 国产三级一区二区三区| 999一区二区三区| 成人四虎影院| 亚洲国产婷婷香蕉久久久久久| 尤物视频最新网址| 国产精品mv在线观看| 国产精品久久97| 色综合视频在线| 亚洲欧美影音先锋| 日韩黄色短视频| 亚洲免费一区| 亚洲女人天堂成人av在线| 唐朝av高清盛宴| 蜜臀91精品一区二区三区| 好看的日韩精品| av免费在线观看网址| 欧美综合视频在线观看| 性猛交╳xxx乱大交| 欧美五码在线| 中文字幕在线视频日韩| 激情五月少妇a| 久久99久久99小草精品免视看| 91色精品视频在线| 2019中文字幕在线视频| 精品久久中文字幕久久av| 手机在线播放av| 日韩av字幕| 久久国产精彩视频| 国产又大又黄的视频| 国产精品视频yy9299一区| 久久国产成人精品国产成人亚洲| 香港久久久电影| 久久国产精品久久久| 在线观看国产黄| 国产婷婷色一区二区三区在线| 免费无遮挡无码永久视频| japansex久久高清精品| 日韩亚洲欧美中文在线| 中文人妻熟女乱又乱精品| 国产日韩欧美高清| 中文字幕在线观看第三页| 国产亚洲一区二区三区不卡| 欧美重口另类videos人妖| 国产丝袜视频在线观看| 亚洲欧洲韩国日本视频| 在线免费看污网站| 欧美高清一区| 成人性生交大片免费观看嘿嘿视频 | 2025中文字幕| 欧美区亚洲区| 91成人免费在线观看| 酒色婷婷桃色成人免费av网| 色悠悠久久综合| 欧美做受喷浆在线观看| 亚洲欧美高清| 久久国产精品精品国产色婷婷| 黄色亚洲网站| 日韩av最新在线观看| 欧美在线观看不卡| 国产欧美精品区一区二区三区| 91人人澡人人爽人人精品| 日本道不卡免费一区| 成人黄色av播放免费| 日本电影在线观看网站| 91久久精品一区二区二区| 欧洲一级黄色片| 日韩专区中文字幕一区二区| 婷婷五月色综合| 国产麻豆久久| 久久艹在线视频| 欧美 日韩 中文字幕| 一本色道久久综合亚洲精品按摩| 亚洲做受高潮无遮挡| 奇米888四色在线精品| av电影一区二区三区| 成人午夜网址| 日韩av片永久免费网站| 日本成人网址| 亚洲精品98久久久久久中文字幕| 精品无码久久久久| 成人av电影在线观看| 国产精品亚洲a| 国产精品99一区二区三区| 91在线国产电影| 川上优av中文字幕一区二区| 国产一区二区三区在线视频| 伊人久久一区二区| 亚洲欧美日韩国产综合| 国产男男chinese网站| 久久99国产精品麻豆| www污在线观看| 日本大胆欧美| 久久riav| 亚洲人成网站在线在线观看| 91国内在线视频| 日本中文字幕视频在线| 欧美精品一区二区在线观看| 精品国产www| 亚洲在线视频一区| 九九热免费在线| 国产99精品视频| 冲田杏梨av在线| 影音先锋久久| 男女啪啪的视频| 国产探花在线精品一区二区| 国产精品一区二区a| 不卡福利视频| 欧美日韩福利视频| 在线免费观看黄色av| 精品捆绑美女sm三区| 伊人免费在线观看高清版| 欧美日韩黄色大片| 欧美黑人精品一区二区不卡| 国产精品免费久久久久| 国产精品jizz| 成人午夜电影网站| 欧美xxxxxbbbbb| 美女久久久精品| 日本成人在线免费视频| 亚洲精品社区| www婷婷av久久久影片| 国产精品88久久久久久| 天堂√在线观看一区二区| 日韩成人一级| 精品国产综合区久久久久久| www.神马久久| 99国产高清| 78精品国产综合久久香蕉| 高清欧美一区二区三区| 2017亚洲天堂1024| 在线观看日韩视频| 性猛交xxxx| 欧美变态tickling挠脚心| 在线观看国产成人| 欧美日韩一区二区电影| 中文字幕激情视频| 欧美男男青年gay1069videost| 亚洲一区二区激情| 欧美一级日韩一级| 蜜桃视频污在线观看| 精品成人一区二区三区四区| 日本激情一区二区三区| 日韩av影视综合网| 精品影院一区| 色吧影院999| a级网站在线播放| 欧美高清视频在线播放| 成人免费图片免费观看| 国产福利精品在线| 亚洲狼人在线| 国产精品久久久久久久久久久久午夜片| 99久久人爽人人添人人澡| 91麻豆精品秘密入口| 中文字幕视频精品一区二区三区| 成人免费在线一区二区三区| 日本中文字幕在线一区| 午夜一区二区三视频在线观看| 欧美激情777| 国产亚洲黄色片| 日韩专区中文字幕一区二区| 欧美激情国内自拍| 91老师片黄在线观看| 国产白丝一区二区三区| 亚洲一区二区免费视频| 免费毛片在线播放免费 | 韩日视频在线观看| 久久精品女人| 国产精品igao网网址不卡| 99久久夜色精品国产网站| 超薄肉色丝袜一二三| 一区二区三区中文在线| 久久一区二区三区视频| 欧美一区二区人人喊爽| 亚洲男人天堂久久| 在线观看日韩欧美| 国产在线美女| 国产精品91视频| 白嫩亚洲一区二区三区| 久久久福利视频| 影视一区二区| 久久久久久香蕉| 福利电影一区二区| 中文字幕91视频| 天天影视涩香欲综合网 | 日韩经典中文字幕| 在线观看免费黄色| 欧美一级片久久久久久久| 婷婷激情成人| 日韩欧美一区二区在线观看| 亚洲茄子视频| 日韩一级理论片| 91污片在线观看| 波多野结衣不卡视频| 在线观看国产精品网站| 色哟哟国产精品色哟哟| 久久99精品久久久久久噜噜| 成人午夜毛片| 日韩国产在线一区| 羞羞视频在线观看欧美| 国产一级免费片| 亚洲精品免费在线| 一本大道伊人av久久综合| 欧美一级搡bbbb搡bbbb| 国产在线观看av| 国产欧美日韩免费看aⅴ视频| 九色精品91| 男人的天堂99| 91丨九色丨尤物| 欧美激情亚洲综合| 精品国产乱码久久久久久夜甘婷婷| 成人在线app| 国产精品久久久久久影视| 国产欧美日韩精品一区二区免费| 波多野结衣之无限发射| 成人高清av在线| 日操夜操天天操| 欧美精品一区二区不卡| 黄色影院在线看| 国产综合精品一区二区三区| 伊人成年综合电影网| 亚洲精品久久一区二区三区777| 一区二区三区免费看视频| 国产熟女一区二区丰满| 欧美成年人视频网站| 欧美momandson| 久久综合狠狠综合久久综青草| 亚洲一区成人| 免费毛片视频网站| 一本大道久久a久久综合| 搞黄视频免费在线观看| 国产精品一二区| 97精品国产福利一区二区三区| 中日韩av在线播放| 18欧美亚洲精品| 亚洲精品一区二区三区新线路| 欧美高清在线观看| 久久精品国产亚洲5555| 免费看一级大黄情大片| 久久久99精品免费观看不卡| 国产无遮挡又黄又爽又色视频| 在线精品国产欧美| 成人综合日日夜夜| 国产成人一区二区三区别| 成人黄色网址在线观看| 国产精品第72页| 亚洲美女精品久久| 日韩av免费| 色狠狠久久av五月综合| 美女爽到高潮91| 欧美三级小视频| 精品国产青草久久久久福利| 99色在线观看| 日韩欧美一区二区三区四区五区| 久久精品国产久精国产| 九九热精品在线观看| 亚洲成**性毛茸茸| 性高爱久久久久久久久| 伊人色综合影院| 国产99一区视频免费| 天天操夜夜操视频| 色婷婷av一区二区三区久久| 99国产精品久久一区二区三区| 欧美国产综合在线| 成人a区在线观看| 最近中文字幕免费观看| 超在线视频97| 日韩高清成人在线| 日本黄色的视频| 亚洲成人免费av| 成人午夜影视| 国产精品午夜国产小视频| 中文字幕一区二区三区乱码图片| 三上悠亚ssⅰn939无码播放 | 亚洲精品字幕在线| 日本不卡免费高清视频| 午夜日韩福利|