精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久三级毛片| 亚洲字幕一区二区| 精品国产乱码久久久久软件| 成人免费无遮挡无码黄漫视频| www.99视频| 欧美综合久久| 色综合久久88色综合天天6| 亚洲最大av在线| 日韩久久精品视频| 综合视频一区| 亚洲免费观看高清在线观看| 国产精品久久久久久久久久久新郎| 东京热av一区| 欧美另类tv| 欧美+日本+国产+在线a∨观看| 在线观看国产一区二区| 久久久久久九九九九| 精品在线视频免费| 亚洲综合网狠久久| 色嗨嗨av一区二区三区| 欧美精品亚洲| jizz国产在线观看| 免费黄色成人| 色婷婷国产精品综合在线观看| 亚洲欧美日产图| 中文字幕丰满人伦在线| 成人黄色av| 欧美精品一区二区三区蜜桃| 农民人伦一区二区三区| 韩国av在线免费观看| 国一区二区在线观看| 欧美大肚乱孕交hd孕妇| 国产精品入口芒果| 毛片在线看片| 国产福利电影一区二区三区| 色综合久久88色综合天天看泰| 韩国一区二区三区四区| 欧洲性视频在线播放| 欧美国产激情二区三区 | 99成人在线观看| 国产福利91精品一区二区| 国产精品美女一区二区三区| 国产女同一区二区| 少妇人妻丰满做爰xxx| 亚洲最大的免费视频网站| 亚洲激情网站免费观看| 国产精品乱子乱xxxx| 久久久国产精品成人免费| 美日韩中文字幕| 亚洲第一福利网站| 久久国产色av免费观看| 91精品国产91久久久久游泳池| 精品一二线国产| 欧美久久精品一级黑人c片| 中文字幕avav| 正在播放日韩精品| 中文字幕中文字幕在线一区| 不卡的av一区| 中文字幕一区二区三区免费看| 亚洲永久免费| 久久av红桃一区二区小说| 成人手机在线免费视频| 成人涩涩视频| 午夜精品久久久久久久| 亚洲电影一二三区| 爱爱爱免费视频在线观看| 国产在线国偷精品产拍免费yy| 午夜精品免费视频| 欧美视频一区二区在线| 久久电影在线| 69堂国产成人免费视频| 久久黄色片视频| 国产美女在线观看| 久久亚洲一区二区三区明星换脸| 成人免费视频网址| 久久久久女人精品毛片九一| 希岛爱理av一区二区三区| 亚洲激情在线观看视频免费| 91精品999| 丁香六月综合| 午夜影院在线观看欧美| av免费观看国产| 无码小电影在线观看网站免费| 日韩欧美第一页| 无码人妻精品一区二区蜜桃网站| eeuss影院www在线观看| 国产精品理伦片| 中文字幕の友人北条麻妃| 国产最新视频在线观看| 99久久99久久精品国产片果冻| 91精品久久久久久久久久久久久久 | 日韩视频一区二区三区四区| 欧美主播一区二区三区| 爱豆国产剧免费观看大全剧苏畅 | 久久久久黄久久免费漫画| 亚洲444eee在线观看| 老司机午夜av| 都市激情亚洲一区| 欧美酷刑日本凌虐凌虐| 国产一级不卡毛片| 中文成人在线| 日韩精品小视频| 制服丝袜第一页在线观看| 精品国产乱码一区二区三区 | www日韩视频| 精品一区二区三区视频在线播放| 日韩黄色av网站| 初高中福利视频网站| www久久久| 日韩福利视频在线观看| 蜜桃av.com| 久久九九精品| 日韩免费观看视频| 国产91精品看黄网站在线观看| 美国av一区二区| 国产区亚洲区欧美区| 亚洲欧美黄色片| 国产精品久久一级| 精品视频一区二区在线| 涩涩视频在线| 一本色道亚洲精品aⅴ| а 天堂 在线| 精品久久不卡| www.99久久热国产日韩欧美.com| 人妻精品久久久久中文| 少妇一区二区视频| 久久久久久亚洲| 久久精品一二区| 国产精品一二一区| 国产日韩一区二区三区| 午夜在线观看视频18| 91麻豆视频网站| 污视频在线免费观看一区二区三区| 黄色在线网站| 天天综合日日夜夜精品| 18禁男女爽爽爽午夜网站免费| 精品国产麻豆| 最新国产精品亚洲| a级片在线观看免费| 黄色欧美日韩| av成人观看| 在线看一级片| 色综合久久久久综合99| 精品久久久久一区二区| 欧美极品一区二区三区| 91大神福利视频在线| www.久久视频| 国产伦精品一区二区三区免费 | 婷婷久久国产对白刺激五月99| 久久精品国产清自在天天线 | 中文字幕日韩欧美精品高清在线| 久久久久久av| 亚洲xxx在线| 久久久久99精品一区| 黄色免费高清视频| 松下纱荣子在线观看| 亚洲成人黄色在线| 中文在线观看免费网站| 成人性色生活片| 日本电影一区二区三区| 在线看福利影| 欧美不卡一二三| jizz日本在线播放| 亚洲激情网址| 国产男女猛烈无遮挡91| 欧美18一19xxx性| 91精品一区二区三区在线观看| 三级黄色在线观看| 国产乱码精品一区二区三区忘忧草| 桥本有菜av在线| 18aaaa精品欧美大片h| 欧美揉bbbbb揉bbbbb| 青青草视频网站| 国产日韩欧美一区在线| 亚洲在线免费看| 色爱综合区网| 制服丝袜中文字幕一区| 男人与禽猛交狂配| 成人精品小蝌蚪| www.亚洲一区二区| 99久久婷婷国产综合精品青牛牛| 中文字幕精品国产| 精品91久久久| 国产·精品毛片| 中文字幕剧情在线观看一区| www.成人影院| 日韩最新在线视频| 亚洲国产成人在线观看| 狠狠躁夜夜躁人人爽超碰91| 丰满人妻一区二区三区免费视频棣| 欧美一站二站| 亚洲一区二区三区毛片| aa级大片免费在线观看| 亚洲四色影视在线观看| 日韩av免费网址| 国产日产欧美一区二区视频| 色综合久久久久无码专区| 人人爱人人干婷婷丁香亚洲| 海角国产乱辈乱精品视频| 国产又粗又长又大视频| 亚洲国产精品ⅴa在线观看| 无套白嫩进入乌克兰美女| 亚洲专区一区| 日韩不卡视频一区二区| 亚洲精品推荐| 欧美在线一级va免费观看| 深夜福利在线视频| 精品欧美一区二区三区| 麻豆网址在线观看| 久久九九久久九九| 日本精品一二三区| 九九热在线视频观看这里只有精品| 亚洲欧美日韩综合一区| 福利在线一区| 992tv成人免费影院| 免费观看久久久久| 亚洲人成五月天| 好吊视频一二三区| 日韩一区二区在线看| 麻豆视频在线观看| 成人黄色777网| 91 在线视频观看| 亚洲国产精品91| 日韩免费一区二区三区| 久久麻豆视频| 91精品国产91久久久久久久久| av在线free| 欧美精品一区二区三区很污很色的| 中文字幕在线视频第一页| 福利一区福利二区微拍刺激| 免费网站观看www在线观| 国产精品美女视频| 欧美激情久久久久久久| 久久99精品久久久| 999在线免费视频| 久久aⅴ国产紧身牛仔裤| 国产色一区二区三区| 欧美在线91| 欧美美女黄色网| 欧美午夜久久| 91精品国产毛片武则天| 久久久国产精品| 99精品视频网站| 欧美肥老太太性生活| www.成人av| 草草视频在线一区二区| 99久久久精品免费观看国产| 精品久久国产一区| 99re在线观看| 综合激情网...| 国产自产在线视频一区| 国产无遮挡裸体免费久久| 国产精品一级久久久| 香蕉大人久久国产成人av| 成人av网站观看| 成午夜精品一区二区三区软件| 国产精品国产一区二区| 国产精品主播在线观看| 国产一区再线| 伊人成综合网伊人222| 久久人人九九| 精品黄色一级片| 中文字幕一区二区三区精彩视频| 五月精品视频| 无颜之月在线看| 亚洲精品国产日韩| 六月丁香婷婷在线| 人人爽香蕉精品| 国产无限制自拍| 亚洲影院一区| 日本黄大片一区二区三区| 亚洲国产第一| 国产在线青青草| 国产综合精品| 免费看一级大黄情大片| 日韩精品视频网| 日韩中文字幕在线视频观看| 国产精品久久久久久久免费软件 | 天堂久久午夜av| 成人女保姆的销魂服务| 岛国成人av| 日韩欧美亚洲日产国| 亚洲精品网址| 丰满爆乳一区二区三区| 日本中文字幕一区| 无码人妻一区二区三区免费n鬼沢| 99re这里都是精品| 国产欧美小视频| 亚洲国产cao| 欧美 日韩 国产 一区二区三区| 一区二区欧美精品| 无码黑人精品一区二区| 久久久.com| 欧美日韩三级在线观看| 色综合久久天天| 99久久夜色精品国产亚洲| 欧美精品久久久久久久多人混战| 亚洲av无码一区二区三区dv| 亚洲热线99精品视频| 超碰caoporn久久| 日本久久久久久久久| 国产欧美日韩电影| 91性高湖久久久久久久久_久久99| 狠狠久久综合| 精品欧美一区二区久久久伦| 手机亚洲手机国产手机日韩| 九色自拍视频在线观看| 精品中文字幕一区二区小辣椒| 97人妻天天摸天天爽天天| 99久久精品国产一区| 超薄肉色丝袜一二三| 亚洲第一福利一区| 97在线视频人妻无码| 亚洲嫩模很污视频| 国产高清自拍视频在线观看| 国产一区二区三区视频在线观看| 久草视频在线看| 欧美高清视频免费观看| 懂色av一区| 欧美有码在线观看| 亚州一区二区三区| 国产在线播放91| 亚洲欧美成人vr| 青青在线免费观看| 男人的天堂亚洲| 中国极品少妇xxxx| 亚洲欧美视频在线观看视频| 免费一级肉体全黄毛片| 欧美性xxxxxx少妇| 国产美女精品视频国产| 欧美成人女星排名| 黄色在线论坛| 国产有码在线一区二区视频| 少妇一区二区视频| 久章草在线视频| 久久免费视频色| 97久久久久久久| 日韩av一区在线| av福利导福航大全在线| 99c视频在线| 欧美精品激情| 在线播放第一页| 亚洲一二三区不卡| 无码人妻精品一区二区三区不卡| 精品国产麻豆免费人成网站| 调教一区二区| 3d精品h动漫啪啪一区二区| 红杏一区二区三区| 日韩 欧美 视频| 本田岬高潮一区二区三区| 国产午夜久久久| 欧美精品一区二区三区四区| 成人影音在线| 国产在线欧美日韩| 国产免费成人| xxxx日本黄色| 欧美日韩国产高清一区二区三区| 亚洲男人第一天堂| 国内精品久久影院| 天堂网av成人| 佐佐木明希av| 国产成人精品综合在线观看| 精品少妇爆乳无码av无码专区| 欧美自拍偷拍午夜视频| jzzjzzjzz亚洲成熟少妇| 国产精品视频区1| 欧美a级网站| 国产日产欧美一区二区| 国产一区亚洲一区| 国产女人18水真多毛片18精品| 日韩免费看网站| 超碰在线视屏| 97视频资源在线观看| 狠狠入ady亚洲精品| 久久午夜夜伦鲁鲁片| 一本高清dvd不卡在线观看| chinese偷拍一区二区三区| 成人免费淫片aa视频免费| 欧美日韩国内| 瑟瑟视频在线观看| 性做久久久久久久免费看| 欧美在线观看在线观看| 久久久人成影片一区二区三区观看| 国产调教精品| 日本在线观看免费视频| 久久人人爽人人爽| 在线免费观看一级片| 国产一区二区黄| 九九99久久精品在免费线bt| 无码专区aaaaaa免费视频| 久久综合色播五月| 91高潮大合集爽到抽搐| 国产一区二区三区欧美| 亚洲精品第一| 亚洲欧美日韩精品综合在线观看| 国产盗摄女厕一区二区三区 | 怡红院av在线| 欧美日韩一区综合| 国产精品亚洲一区二区三区在线| 青草视频在线观看免费|