點選上方“芋道原始碼”,選擇“置頂公眾號”
技術文章第一時間送達!
來源:https://www.jianshu.com/p/5ee9897b6b65
命令不斷更新中……
Git的四個組成部分
1、初始化倉庫
git init
2、將檔案新增到倉庫
git add 檔案名 # 將工作區的某個檔案新增到暫存區
git add -u # 新增所有被tracked檔案中被修改或刪除的檔案資訊到暫存區,不處理untracked的檔案
git add -A # 新增所有被tracked檔案中被修改或刪除的檔案資訊到暫存區,包括untracked的檔案
git add . # 將當前工作區的所有檔案都加入暫存區
git add -i # 進入互動介面樣式,按需新增檔案到快取區
3、將暫存區檔案提交到本地倉庫
git commit -m "提交說明" # 將暫存區內容提交到本地倉庫
git commit -a -m "提交說明" # 跳過快取區操作,直接把工作區內容提交到本地倉庫
4、檢視倉庫當前狀態
git status
5、比較檔案異同
git diff # 工作區與暫存區的差異
git diff 分支名 #工作區與某分支的差異,遠端分支這樣寫:remotes/origin/分支名
git diff HEAD # 工作區與HEAD指標指向的內容差異
git diff 提交id 檔案路徑 # 工作區某檔案當前版本與歷史版本的差異
git diff --stage # 工作區檔案與上次提交的差異(1.6 版本前用 --cached)
git diff 版本TAG # 檢視從某個版本後都改動內容
git diff 分支A 分支B # 比較從分支A和分支B的差異(也支援比較兩個TAG)
git diff 分支A...分支B # 比較兩分支在分開後各自的改動
# 另外:如果只想統計哪些檔案被改動,多少行被改動,可以新增 --stat 引數
6、檢視歷史記錄
git log # 檢視所有commit記錄(SHA-A校驗和,作者名稱,郵箱,提交時間,提交說明)
git log -p -次數 # 檢視最近多少次的提交記錄
git log --stat # 簡略顯示每次提交的內容更改
git log --name-only # 僅顯示已修改的檔案清單
git log --name-status # 顯示新增,修改,刪除的檔案清單
git log --oneline # 讓提交記錄以精簡的一行輸出
git log –graph –all --online # 圖形展示分支的合併歷史
git log --author=作者 # 查詢作者的提交記錄(和grep同時使用要加一個--all--match引數)
git log --grep=過濾資訊 # 列出提交資訊中包含過濾資訊的提交記錄
git log -S查詢內容 # 和--grep類似,S和查詢內容間沒有空格
git log fileName # 檢視某檔案的修改記錄,找背鍋專用
7、程式碼回滾
git reset HEAD^ # 恢覆成上次提交的版本
git reset HEAD^^ # 恢覆成上上次提交的版本,就是多個^,以此類推或用~次數
git reflog
git reset --hard 版本號
--soft:只是改變HEAD指標指向,快取區和工作區不變;
--mixed:修改HEAD指標指向,暫存區內容丟失,工作區不變;
--hard:修改HEAD指標指向,暫存區內容丟失,工作區恢復以前狀態;
8、同步遠端倉庫
git push -u origin master
9、刪除版本庫檔案
git rm 檔案名
10、版本庫裡的版本替換工作區的版本
git checkout -- test.txt
11、本地倉庫內容推送到遠端倉庫
git remote add origin git@github.com:帳號名/倉庫名.git
12、從遠端倉庫克隆專案到本地
git clone git@github.com:git帳號名/倉庫名.git
13、建立分支
git checkout -b dev
-b表示建立並切換分支
上面一條命令相當於一面的二條:
git branch dev //建立分支
git checkout dev //切換分支
14、檢視分支
git branch
15、合併分支
git merge dev
//用於合併指定分支到當前分支
git merge --no-ff -m "merge with no-ff" dev
//加上--no-ff引數就可以用普通樣式合併,合併後的歷史有分支,能看出來曾經做過合併
16、刪除分支
git branch -d dev
17、檢視分支合併圖
git log --graph --pretty=oneline --abbrev-commit
18、檢視遠端庫資訊
git remote
// -v 顯示更詳細的資訊
19、git相關配置
# 安裝完Git後第一件要做的事,設定使用者資訊(global可換成local在單獨專案生效):
git config --global user.name "使用者名稱" # 設定使用者名稱
git config --global user.email "使用者郵箱" #設定郵箱
git config --global user.name # 檢視使用者名稱是否配置成功
git config --global user.email # 檢視郵箱是否配置
# 其他檢視配置相關
git config --global --list # 檢視全域性設定相關引數串列
git config --local --list # 檢視本地設定相關引數串列
git config --system --list # 檢視系統配置引數串列
git config --list # 檢視所有Git的配置(全域性+本地+系統)
git config --global color.ui true //顯示git相關顏色
20、撤消某次提交
git revert HEAD # 撤銷最近的一個提交
git revert 版本號 # 撤銷某次commit
21、拉取遠端分支到本地倉庫
git checkout -b 本地分支 遠端分支 # 會在本地新建分支,並自動切換到該分支
git fetch origin 遠端分支:本地分支 # 會在本地新建分支,但不會自動切換,還需checkout
git branch --set-upstream 本地分支 遠端分支 # 建立本地分支與遠端分支的連結
22、標簽命令
git tag 標簽 //打標簽命令,預設為HEAD
git tag //顯示所有標簽
git tag 標簽 �版本號 //給某個commit版本新增標簽
git show 標簽 //顯示某個標簽的詳細資訊
23、同步遠端倉庫更新
git fetch origin master
//從遠端獲取最新的到本地,首先從遠端的origin的master主分支下載最新的版本到origin/master分支上,然後比較本地的master分支和origin/master分支的差別,最後進行合併。
git fetch比git pull更加安全
如果你對 Dubbo / Netty 等等原始碼與原理感興趣,歡迎加入我的知識星球一起交流。長按下方二維碼噢:
目前在知識星球更新了《Dubbo 原始碼解析》目錄如下:
01. 除錯環境搭建
02. 專案結構一覽
03. 配置 Configuration
04. 核心流程一覽
05. 拓展機制 SPI
06. 執行緒池
07. 服務暴露 Export
08. 服務取用 Refer
09. 註冊中心 Registry
10. 動態編譯 Compile
11. 動態代理 Proxy
12. 服務呼叫 Invoke
13. 呼叫特性
14. 過濾器 Filter
15. NIO 伺服器
16. P2P 伺服器
17. HTTP 伺服器
18. 序列化 Serialization
19. 叢集容錯 Cluster
20. 優雅停機
21. 日誌適配
22. 狀態檢查
23. 監控中心 Monitor
24. 管理中心 Admin
25. 運維命令 QOS
26. 鏈路追蹤 Tracing
… 一共 69+ 篇
目前在知識星球更新了《Netty 原始碼解析》目錄如下:
01. 除錯環境搭建
02. NIO 基礎
03. Netty 簡介
04. 啟動 Bootstrap
05. 事件輪詢 EventLoop
06. 通道管道 ChannelPipeline
07. 通道 Channel
08. 位元組緩衝區 ByteBuf
09. 通道處理器 ChannelHandler
10. 編解碼 Codec
11. 工具類 Util
… 一共 61+ 篇
目前在知識星球更新了《資料庫物體設計》目錄如下:
01. 商品模組
02. 交易模組
03. 營銷模組
04. 公用模組
… 一共 17+ 篇
目前在知識星球更新了《Spring 原始碼解析》目錄如下:
01. 除錯環境搭建
02. IoC Resource 定位
03. IoC BeanDefinition 載入
04. IoC BeanDefinition 註冊
05. IoC Bean 獲取
06. IoC Bean 生命週期
… 一共 35+ 篇
原始碼不易↓↓↓↓↓
點贊支援老艿艿↓↓