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

10個節省時間和改善工作流的Git技巧

新聞 前端
這 10 個 Git 小技巧,不僅可以節省時間,而且能改善你的工作流程。

 [[316431]]

這 10 個 Git 小技巧,不僅可以節省時間,而且能改善你的工作流程。

根據手冊,Git 被定義為傻瓜式內容追蹤器,它功能豐富,但有些功能卻讓人望而生畏。因此,我們只是重復使用那幾個被記住的命令,而沒有充分使用。

https://manpages.debian.org/stretch/git-man/git.1.en.html

技巧 1:優化配置

Git 在全局、用戶和本地級別上都是高度可配置的。

https://git-scm.com/docs/git-config

查找順序

每個設置都可以被覆蓋:

  1. $CWD/.git/config 
  2.     ▼ ▼ ▼ 
  3. $HOME/.gitconfig` 
  4.     ▼ ▼ ▼ 
  5. $HOME/.config/git/config 
  6.     ▼ ▼ ▼ 
  7. /etc/gitconfig 

修改設置

用你喜歡的編輯器或者 CLI 編輯任何配置文件:

  1. # 全局設置 
  2. git config --global <keypath> <value> 
  3. # 本地設置 
  4. git config <keypath> <value> 

如果值包含空格字符,則需要用引號引起來。

顯示當前設置

  1. # 顯示當前設置及其來源 
  2. git config --list --show-origin 

一些有用的配置

  1. # 設定身份 
  2. git config --global user.name "<your name>" 
  3. git config --global user.email <your email> 
  4. # 首選編輯器 
  5. git config --global core.editor vim 
  6. # 證書緩存 
  7. # WINDOWS 
  8. git config --global credential.helper manager 
  9. # LINUX (超時時間——以秒為單位) 
  10. git config --global credential.helper "cache --timeout=3600" 
  11. # MACOS 
  12. git config --global credential.helper osxkeychain 

https://git-scm.com/docs/gitcredentials

技巧 2:別名(alias)

創建一個別名來保存常用的 git 命令:

  1. # 創建別名 
  2. git config --global alias.<alias-name> "<git command>" 
  3. # 使用別名 
  4. git <alias-name> <more optional arguments> 

一些有用的別名

  1. # 撤銷上次提交 
  2. git config --global alias.undo "reset --soft HEAD^" 
  3. # 將暫存區更新修訂到上次提交 (不改變提交信息) 
  4. git config --global alias.amend "commit --amend --no-edit" 
  5. # 壓縮的狀態輸出 
  6. git config --global alias.st "status -sb" 
  7. # 用 GRAPH 為日志著色 
  8. git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'" 
  9. # 刪除所有已合并的分支 
  10. git config --global alias.rmb "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d" 
  11. # 貢獻排行 
  12. git config --global alias.rank "shortlog -n -s --no-merges" 

技巧 3:查找 Commits 和更改

通過 Commits 信息查找

  1. # 通過 commit 信息查找 (所有分支) 
  2. git log --all --grep='<search term>' 
  3. # 通過 commit 信息查找 (包含 reflog) 
  4. git log -g --grep='<search term>' 

通過更改查找

  1. # 通過更新的內容查找 
  2. git log -S '<search term>' 

通過日期查找

  1. # 通過日期范圍查找 
  2. git log --after='DEC 15 2019' --until='JAN 10 2020' 

技巧 4:添加 hunk

git add <filepath>不僅能添加文件的所有變更,--path / -p參數還可以交互式暫存區塊。

  1. # 補丁命令 
  2. y = 暫存區塊 
  3. n = 不暫存這個區塊 
  4. q = 退出 
  5. a = 暫存當前文件的此區塊以及所有剩余區塊 
  6. d = 不暫存當前文件的此區塊以及所有剩余區塊 
  7. / = 查找區塊 (正則表達式) 
  8. s = 劃分成更小的區塊 
  9. e = 手動編輯區塊 
  10. ? = 打印幫助說明 
  11. g = 選擇要前往的區塊 
  12. j = 將區塊設為未定,查看下一個未定區塊 
  13. J = 將區塊設為未定,查看下一個區塊 
  14. k = 將區塊設為未定,查看上一個未定區塊 
  15. J = 將區塊設為未定,查看下一個區塊 

https://git-scm.com/docs/git-add#Documentation/git-add.txt--i

技巧 5:儲藏(stash)更改而不提交

stash 將當前的更改臨時擱置起來。在它的幫助下,可以返回當前狀態的索引,并能在稍后應用已儲藏的更改。

默認情況下,僅儲藏當前跟蹤文件中的更改,新文件將被忽略。

我們可以獨立地創建和應用多個 stash。

https://git-scm.com/docs/git-stash

創建

  1. # 創建新的 STASH 
  2. git stash 
  3. # 創建新的 STASH (包含未追蹤的更改) 
  4. git stash -u/--include-untracked 
  5. # 創建新的 STASH 并命名 
  6. git stash save "<stash name>" 
  7. # 交互式儲藏 
  8. git stash -p 

羅列

  1. # 列出所有的 STASH (為其他命令提供"n"
  2. git stash list 

瀏覽

  1. # 瀏覽 STASH 內容 
  2. git stash show 
  3. # 瀏覽 STASH 差異 
  4. git stash show -p 

應用

  1. # 應用上一個 STASH (刪除 stash) 
  2. git stash pop 
  3. # 應用上一個 STASH (保留 stash) 
  4. git stash apply 
  5. # 應用特定的 STASH (n = stash 列表序號) 
  6. git stash pop/apply stash@{n} 
  7. # 從 STASH 創建新的分支 (n = stash 列表序號) 
  8. git stash branch <new branch name> stash@{n} 
  9. # 從 STASH 應用單個文件 (n = stash 列表序號) 
  10. git checkout stash@{n} -- <filepath> 

清理

  1. # 刪除特定的 STASH (n = stash 列表序號) 
  2. git stash drop stash@{n} 
  3. # 刪除所有的 STASH 
  4. git stash clear 

技巧 6:空運行(Dry Run)

許多 git 操作可能具有破壞性,例如,git clean -f將刪除所有未跟蹤的文件,而且無法恢復。

要避免出現這種災難性的結果,許多命令都支持dry-run,可以在實際產生結果前對其進行檢查。不過遺憾的是,使用的選項不完全一致:

  1. git clean -n/--dry-run 
  2. git add -n/--dry-run 
  3. git rm -n/--dry-run 
  4. # GIT MERGE 模擬 DRY-RUN 
  5. git merge --no-commit --no-ff <branch> 
  6. git diff --cached 
  7. git merge --abort 

請注意,git commit -n根本不是dry-run!它實際上是--no-verify,作用是忽略所有pre-commit/commit-msg githooks。

技巧 7:安全強制推送

在處理舊的 commit、創建新的 head 等情況時時很容易弄亂分支。git push --force可以覆蓋遠程變更,但不應該這樣做!

git push --force是一種具有破壞性且危險的操作,因為它無條件生效,并且會破壞其他提交者已經推送的所有 commit。這對于其他人的代碼倉庫來說不一定是致命的,但是改變歷史記錄并影響其他人并不是一個好主意。

更好的選擇是使用git push --force-with-lease。

git 不會無條件地覆蓋上游的遠程倉庫,而是檢查是否有本地不可用的遠程更改。如果有,它會失敗并顯示一條“stale info”消息,并告訴我們需要先運行git fetch。

https://git-scm.com/docs/git-push#Documentation/git-push.txt---force-with-leaseltrefnamegt

技巧 8:修改 commit 信息

Commit 是不可變的,且不能更改。不過可以用一條新的 commit 信息修訂現有的 commit,這會覆蓋原始 commit,因此請勿在已推送的 commit 中使用它。

  1. git commit --amend -m "<new commit message>" 

https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---amend

技巧 9:修改歷史

修改代碼倉庫的歷史不僅限于修改上次提交信息,使用git rebase可以修改多個提交:

  1. # 提交的范圍 
  2. git rebase -i/--interactive HEAD~<number of commits> 
  3. # 該 hash 之后的所有提交 
  4. git rebase -i/--interactive <commit hash> 

在配置的編輯器中倒序列出所有的 commit,像這樣:

  1. # <command> <commit hash> <commit message> 
  2. pick 5df8fbc revamped logic 
  3. pick ca5154e README typos fixed 
  4. pick a104aff added awesome new feature 

通過更改編輯器中的實際內容,可以為 git 提供一個方案,來說明如何進行 rebase:

  1. # p, pick   = 使用提交而不更改 
  2. # r, reword = 修改提交信息 
  3. # e, edit   = 編輯提交 
  4. # s, squash = 匯合提交 
  5. # f, fixup  = 類似"squash",但是會丟棄提交信息 
  6. # x, exec   = 運行命令 (其余行) 
  7. # d, drop   = 移除提交 

保存編輯器后,git 將運行該方案以重寫歷史記錄。e, edit會暫停 rebase,就可以編輯代碼倉庫的當前狀態。完成編輯后,運行git rebase --continue。

如果過程中出現問題(例如合并沖突),我們需要重新開始,可以使用git rebase --abort。

https://git-scm.com/docs/git-rebase

技巧 10:存檔跟蹤文件

可以使用不同格式(zip或tar)來壓縮特定引用的跟蹤文件:

  1. git archive --format <format> --output <filename> <ref> 

<ref>可以是一個分支、commit hash 或者一個標簽。

https://git-scm.com/docs/git-archive

額外提醒:單破折號

有一個快捷方式可以表示剛用過的分支:一個單破折號-

  1. git checkout my-branch 
  2. # 當前分支:my-branch 
  3. <do some git operations, e.g. adding/commiting> 
  4. git checkout develop 
  5. # 當前分支:develop 
  6. git merge - 
  7. # 將 my-branch 合并到 develop 

單破折號等同于@{-1}。

https://git-scm.com/docs/git-checkout#Documentation/git-checkout.txt-ltbranchgt

總結

Git 還有很多話題可談,這里只涉及一些皮毛。在另一篇文章中,我想展示如何用git bisect有效查找損壞的 commit,或者如何通過git reflog來運用任意git操作的完整歷史記錄。

 

責任編輯:張燕妮 來源: 架構頭條
相關推薦

2022-12-26 17:33:43

Jupyterpython

2022-05-02 17:52:53

Python編程語言

2011-02-23 16:07:44

MySQL

2022-04-13 13:51:12

DevSecOps工具開發管道

2020-04-27 11:11:54

數據湖數據人工智能

2024-05-13 12:36:51

Python代碼

2020-01-16 10:20:45

piwheels樹莓派Linux

2011-09-29 11:33:35

Linux

2020-06-04 15:55:54

GitHub代碼開發者

2023-09-18 11:32:37

Python計算

2020-03-10 10:12:14

CIO自動化人力資源

2022-12-19 15:25:22

Linux命令

2018-07-09 09:00:00

開源網絡管理操作系統

2009-08-24 08:59:10

IT白領網絡應用

2018-07-03 10:33:51

服務器運維Linux

2011-07-29 10:32:09

Linux管理員命令行

2023-08-13 16:46:36

2011-08-01 09:36:53

Linux管理員

2023-12-06 18:06:37

Git開發

2021-06-11 08:00:00

人工智能航空工具
點贊
收藏

51CTO技術棧公眾號

国内精品不卡在线| 羞羞答答一区二区| 亚洲综合免费观看高清在线观看| 国产精品日韩欧美一区二区| 亚洲不卡视频在线观看| 日韩伦理一区| 精品国产三级a在线观看| 成人在线免费在线观看| 欧美日韩在线看片| 97久久久精品综合88久久| 国产精品美乳在线观看| 精品无码久久久久| 精品视频久久| 亚洲精品国产精品国自产在线| 日韩一级免费在线观看| 操你啦在线视频| 91丨九色丨国产丨porny| 成人网址在线观看| 久久久久在线视频| 亚洲激情午夜| 日韩视频免费在线| 亚洲做受高潮无遮挡| 日韩视频一二区| 色94色欧美sute亚洲线路二| 国产一区 在线播放| 波多野结衣在线网站| 99国产欧美久久久精品| 91超碰在线免费观看| 男操女视频网站| 亚洲巨乳在线| 久久久久久久999| sm捆绑调教视频| 精品国产一区二区三区噜噜噜| 精品久久久久久无| 红桃视频 国产| 欧美日韩成人影院| 精品久久久久久久大神国产| 国产乱人伦精品一区二区三区| 91高清在线视频| 久久久亚洲欧洲日产国码αv| 岛国视频一区免费观看| av一区二区三| 激情综合色播五月| 国产精品亚洲第一区| 亚洲无码精品一区二区三区| 宅男噜噜噜66国产日韩在线观看| 九九久久久久99精品| 亚洲AV成人无码精电影在线| 日韩免费特黄一二三区| 国产午夜精品美女视频明星a级| 国产高潮视频在线观看| 亚洲一区二区三区免费| 日韩一区二区在线观看视频播放| 中文字幕国产免费| 日韩国产91| 欧美美女直播网站| 亚洲激情在线看| 久久av影院| 欧美区在线观看| 色噜噜狠狠一区二区| 成人精品国产亚洲| 欧美日韩综合不卡| 中文字幕久久av| 超碰国产精品一区二页| 欧美高清精品3d| 午夜激情视频网| 日韩在线成人| 欧美精品一区二区在线播放| 国产一卡二卡三卡四卡| 久久人人爽人人爽人人片av不| 日韩成人黄色av| 亚洲欧洲久久久| 大色综合视频网站在线播放| 色哟哟入口国产精品| 精品自拍偷拍视频| 欧美日韩亚洲一区三区| 97国产精品视频| 中文字幕在线欧美| 麻豆国产一区二区| 91在线看网站| 天天操天天操天天操| 国产午夜一区二区三区| 国产精品亚洲天堂| 免费在线国产视频| 欧美日韩一二三四五区| 精品久久久噜噜噜噜久久图片| 韩国理伦片久久电影网| 日韩欧美视频在线| 深爱五月激情网| 91九色精品国产一区二区| 欧美巨猛xxxx猛交黑人97人| 国产欧美日韩另类| 日韩不卡一二三区| 97久草视频| 青春草在线观看| 国产精品久久久久久福利一牛影视| 青草全福视在线| 日韩精品av| 4438x亚洲最大成人网| 黄色录像a级片| 日韩亚洲一区在线| 久久久久五月天| 小泽玛利亚一区二区三区视频| 国内久久婷婷综合| 欧美日韩一区综合| 宅男在线观看免费高清网站| 日韩人在线观看| 一级网站在线观看| 精品freesex老太交| 欧美激情亚洲自拍| 一卡二卡三卡在线观看| 91免费观看视频| 肉大捧一出免费观看网站在线播放| 天堂av在线网| 日韩一区二区在线看| 中字幕一区二区三区乱码| 欧美激情偷拍| 日韩免费在线播放| 婷婷在线免费观看| 最近中文字幕一区二区三区| 男女高潮又爽又黄又无遮挡| 欧美电影在线观看一区| 在线观看免费高清视频97| 日韩欧美大片在线观看| 国产主播一区二区三区| 日韩欧美精品在线不卡 | 欧美成人一区二区三区电影| 日韩精品一区二区亚洲av观看| 成人免费观看av| 青青草免费在线视频观看| 国产一区高清| 亚洲色图13p| 四虎成人永久免费视频| 成人涩涩免费视频| 国产香蕉一区二区三区| 久久久久毛片| 亚洲女人被黑人巨大进入al| 日韩高清精品免费观看| 国产91在线|亚洲| 国产精品8888| 欧美视频二区欧美影视| 久久亚洲精品成人| 国产又粗又大又爽| 中文字幕日韩精品一区 | 国产成人免费精品| 亚洲日韩中文字幕在线播放| 日本a级c片免费看三区| 久久久久久一二三区| 热久久最新地址| www.久久久久爱免| 粗暴蹂躏中文一区二区三区| 92久久精品一区二区| 国产精品高潮呻吟| 伊人国产精品视频| 亚洲网色网站| 99国产精品久久久久老师| av在线免费网站| 日韩欧美久久一区| 久久婷婷一区二区| 成人爱爱电影网址| 无码精品a∨在线观看中文| 天堂俺去俺来也www久久婷婷 | 中文字幕不卡每日更新1区2区| 国产精品久久久久久妇女| 色老头一区二区三区| 国产内射老熟女aaaa∵| 亚洲一区二区在线免费看| 国产十八熟妇av成人一区| 香蕉成人久久| 亚洲午夜精品一区二区| 日日狠狠久久| 欧美极品欧美精品欧美视频| 青青久在线视频| 欧美视频精品在线观看| 在线观看亚洲网站| 成人一区二区三区中文字幕| 久久久久久久久久久福利| 国产一区毛片| 91精品视频网站| 国产黄大片在线观看| 亚洲三级av在线| 国产欧美一区二区三区视频在线观看| 亚洲一区免费在线观看| 亚洲一区二区观看| 久久99精品一区二区三区三区| 麻豆传媒网站在线观看| 亚欧洲精品视频在线观看| 国产欧美精品一区二区| 国产啊啊啊视频在线观看| 亚洲欧美另类国产| 国产毛片在线视频| 狠狠躁夜夜躁人人爽天天天天97 | 日本不卡高字幕在线2019| freemovies性欧美| 欧美xxxxxxxx| 丰满人妻一区二区三区四区| 亚洲男人的天堂网| 亚洲精品视频久久久| 韩国精品免费视频| 激情综合在线观看| 欧美视频成人| 水蜜桃一区二区三区| 一区二区三区视频免费视频观看网站| 奇米成人av国产一区二区三区| 日本不卡三区| 亚洲天堂久久av| 亚洲精品国产手机| 欧美乱熟臀69xxxxxx| 精品美女久久久久| 亚洲三级在线观看| 国产成人福利在线| 不卡一区二区在线| 亚洲一二区在线观看| 天堂在线亚洲视频| www.日本在线播放| 在线观看国产精品入口| 三级三级久久三级久久18| 欧美a在线观看| 成人国产精品日本在线| 超碰aⅴ人人做人人爽欧美| 欧美日韩电影在线观看| 男人天堂久久久| 亚洲欧美在线免费观看| 人妻91麻豆一区二区三区| 555www色欧美视频| 中文字幕一区二区免费| 色婷婷精品久久二区二区蜜臂av| 精品深夜av无码一区二区老年| 亚洲欧洲成人精品av97| 亚洲图片第一页| 久久这里只有精品视频网| 99精品一区二区三区无码吞精| 国产一区二区调教| 91小视频网站| 免费成人你懂的| 看欧美ab黄色大片视频免费| 先锋影音国产一区| 116极品美女午夜一级| 中文日韩欧美| 日韩 欧美 视频| 精品二区视频| 丁香六月激情网| 欧美午夜在线视频| 国产成a人亚洲精v品在线观看| 欧美日韩91| 国产www免费| 亚洲成人中文| www.av中文字幕| 中日韩男男gay无套| 人人妻人人添人人爽欧美一区| 亚洲午夜视频| 日韩欧美不卡在线| 亚洲人体偷拍| 久久久999免费视频| 国产亚洲高清视频| 国产成人黄色片| 日本中文在线一区| 中文字幕线观看| 国产一区二区三区黄视频| 在线免费观看av网| 国产综合久久久久影院| 色欲欲www成人网站| 成人一道本在线| 亚洲av无码一区二区三区网址 | 91视频免费看片| 国产精品久久久久9999吃药| 97在线观看免费高| 亚洲午夜私人影院| 国产精品999在线观看| 在线精品观看国产| 国产裸体无遮挡| 精品国产乱码久久久久久老虎 | 国产农村妇女精品| 天堂а√在线中文在线鲁大师| 亚洲丝袜美腿综合| 日韩精品久久久久久久| 色婷婷亚洲婷婷| 国产精品久久免费| 欧美xxxx老人做受| 国产精品久久久久久久龚玥菲| 日韩在线资源网| 91九色porn在线资源| 国产a∨精品一区二区三区不卡| 欧美亚洲黄色| 国产精品精品软件视频| 国产亚洲一区二区三区不卡| 精品一区二区三区毛片| 亚洲欧美成人| 三日本三级少妇三级99| heyzo一本久久综合| 美国黄色特级片| 亚洲成人精品一区二区| 波多野结衣日韩| 欧美mv和日韩mv的网站| 精品av中文字幕在线毛片| 欧美成人精品在线| 筱崎爱全乳无删减在线观看| 91久久精品日日躁夜夜躁国产| 久久久亚洲欧洲日产| 最新国产精品久久| 国产精品毛片| 无套白嫩进入乌克兰美女| 国产日韩欧美亚洲| 国产大片中文字幕| 在线电影一区二区三区| 你懂的在线免费观看| 精品视频9999| 国产亚洲欧美日韩精品一区二区三区| 国产一区在线免费观看| 色综合咪咪久久网| 国产91对白刺激露脸在线观看| 国产乱淫av一区二区三区| 美女脱光内衣内裤| 亚洲成年人网站在线观看| 国产又粗又黄又爽| 一区二区三区黄色| 色多多在线观看| 97超级在线观看免费高清完整版电视剧| av永久不卡| 男女曰b免费视频| 波多野结衣视频一区| 一区视频免费观看 | wwwxxxx国产| 中文字幕9999| 欧美xxxxxx| 久久久精品动漫| 99xxxx成人网| 国产精品偷伦视频免费观看了| 国产精品久久久一区麻豆最新章节| 成人毛片18女人毛片| 亚洲成人免费在线视频| 欧美xxx黑人xxx水蜜桃| 亚洲一区二区三区四区在线播放 | 国产一二三区在线播放| 国产精选一区二区三区| 日韩一卡二卡在线观看| 欧美日韩午夜在线| 色的视频在线免费看| 国产精品久久久久久久久久久新郎 | v片在线观看| 91视频8mav| 亚洲人体av| 香蕉视频xxxx| 亚洲黄色尤物视频| 精品人妻一区二区三区日产乱码 | 欧美成人黄色网| 日韩小视频在线观看专区| 成人在线播放免费观看| 亚洲aaaaaa| 在线成人www免费观看视频| 中文字幕乱视频| 欧美日韩精品在线播放| 免费a级毛片在线观看| 国产精品www网站| 日韩欧美三级| 亚洲日本黄色片| 亚洲精品久久嫩草网站秘色| 丁香花免费高清完整在线播放 | av在线一区不卡| 亚洲啪啪av| 国产在线精品视频| 久久97人妻无码一区二区三区| 精品国免费一区二区三区| 少妇视频在线观看| 日本在线观看一区二区三区| 秋霞午夜av一区二区三区| 91香蕉视频网| 精品美女被调教视频大全网站| 九色porny视频在线观看| 欧美不卡在线一区二区三区| 日韩电影网1区2区| 国产精品视频一区二区三| 亚洲第一福利在线观看| 免费日韩电影| 最新av在线免费观看| 成人动漫av在线| 国产情侣免费视频| 欧美精品少妇videofree| 老汉色老汉首页av亚洲| 九色porny91| 一区二区三区在线视频免费观看| 熟妇人妻中文av无码| 国产精品久久久久一区二区| 亚洲无中文字幕| 中文字幕在线免费看线人| 欧美日产在线观看| 蜜桃av在线播放| 自拍视频一区二区三区| 91片在线免费观看| 91精品人妻一区二区三区果冻| 久久久噜噜噜久久久| 日韩精品影视| 日本丰满少妇裸体自慰| 欧美日韩高清一区二区| av资源在线播放| 夜夜爽www精品| 91片黄在线观看| 囯产精品一品二区三区| 国产精品嫩草视频| 91久久在线|