如果你觉得 Git 很迷惑人,那么这份小抄正是为你准备的!
作者 |Maxence Poutord
責編 |?Carol
來源 | 漫話編程
封圖 | CSDN付費下載于視覺中國
如果你覺得 git 很迷惑人,那么這份小抄正是為你準備的!請注意我有意跳過了?git commit、git pull/push?之類的基本命令,這份小抄的主題是 git 的一些「高級」用法。
導航 —— 跳到之前的分支
git?checkout?-
查看歷史
# 每個提交在一行內顯示 git log --oneline# 在所有提交日志中搜索包含「homepage」的提交 git log --all --grep='homepage'# 獲取某人的提交日志 git log --author="Maxence"哎呀:之前重置了一個不想保留的提交,但是現在又想要回滾?
#?獲取所有操作歷史 git?reflog#?重置到相應提交 git?reset?HEAD@{4} #?……或者…… git?reset?--hard?<提交的哈希值>哎喲:我把本地倉庫搞得一團糟,應該怎么清理?
git?fetch?origin git checkout?master git?reset?--hard?origin/master查看我的分支和 master 的不同
git?diff?master..my-branch定制提交
#?編輯上次提交 git?commit?--amend?-m?"更好的提交日志"#?在上次提交中附加一些內容,保持提交日志不變git?add?.?&&?git?commit?--amend?--no-edit#?空提交?——?可以用來重新觸發?CI?構建 git?commit?--allow-empty?-m?"chore:?re-trigger?build"squash 提交
比方說我想要 rebase 最近 3 個提交:
- git rebase -i HEAD~3
- 保留第一行的 pick,剩余提交替換為 squash 或 s
- 清理提交日志并保存(vi 編輯器中鍵入 :wq 即可保存)
修正
比方說想在提交 fed14a4c 加上一些內容。
git 提交分支
git?add?. git?commit?--fixup?HEAD~1 #?或者也可以用提交的哈希值(fed14a4c)替換?HEAD~1git?rebase?-i?HEAD~3?--autosquash #?保存并退出文件(VI?中輸入?`:wq`)rebase 的時候在每個提交上執行命令
如果特性很多,一個分支里可能有多個提交。如果測試失敗了,你希望能找到導致測試失敗的提交。這時候你可以使用?rebase --exec?命令在每個提交上執行命令。
#?在最近?3?個提交上運行?`npm?test`?命令 git?rebase?HEAD~3?--exec?"npm?test"暫存
暫存不止是?git stash?和?git stash pop ;)
#?保存所有正在追蹤的文件 git?stash?save?"日志信息"#?列出所有的暫存項 git?stash?list#?獲取并刪除暫存項 git?stash?apply?stash@{1} git?stash?drop?stash@{1} #?……或使用一條命令…… git?stash?pop?stash@{1}清理
#?移除遠程倉庫上不存在的分支 git?fetch?-p#?移除所有包含?`greenkeeper`?的分支 git?fetch?-p?&&?git?branch?--remote?|?fgrep?greenkeeper?|?sed?'s/^.\{9\}//'?|?xargs?git?push?origin?--deleteGitHub = Git + Hub
我把 Hub 當成 git 的一個封裝來用。你如果也想這么做,可以設置一個別名:alias git='hub'
#?打開瀏覽器訪問倉庫?url(僅限?GitHub?倉庫)git?browse額外福利:我最喜愛的 git 別名
alias?g='git'
alias?glog='git?log?--oneline?--decorate?--graph'
alias?gst='git?status'
alias?gp='git?push'
alias?ga='git?add'alias?gc='git?commit?-v'#?????
alias?yolo='git?push?--force'#?每周站會匯報工作時用
git-standup()?{AUTHOR=${AUTHOR:="`git?config?user.name`"}since=yesterdayif?[[?$(date?+%u)?==?1?]]?;?thensince="2?days?ago"figit?log?--all?--since?"$since"?--oneline?--author="$AUTHOR"
}
在全民抗疫的特殊時期下,在人員復雜、流動量大地方的出入口處都設置了無接觸式無感紅外人體測溫系統。
在這次疫情防控中,無感人體測溫系統發揮了怎樣的作用?高精準的無感人體測溫系統的核心技術武器是什么?對于開發者們來說,大家應該了解哪些技術?
明晚7點《多場景疫情防控:解讀云邊端聯動下的全棧 AI 技術應用》
推薦閱讀:什么是 CD 管道?一文告訴你如何借助Kubernetes、Ansible和Jenkins創建CD管道! 淘寶千萬級并發架構的十四次演進 獨家揭秘阿里自研飛天操作系統洛神平臺如何支撐起 2684 億全球大促!| 問底中國 IT 技術演進 GitHub 一周熱點速覽:手撕 LeetCode 一日 star 破兩千 6個步驟,告訴你如何用樹莓派和機器學習DIY一個車牌識別器!(附詳細分析) 智能合約初探:概念與演變 真香,朕在看了!總結
以上是生活随笔為你收集整理的如果你觉得 Git 很迷惑人,那么这份小抄正是为你准备的!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IBM在中国发布Cloud Paks,牵
- 下一篇: 零基础小白10分钟用Python搭建小说