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