Git 配置與使用及從 0 到 1

来源:https://www.cnblogs.com/hb24blog/archive/2022/10/23/16819865.html
-Advertisement-
Play Games

前言:本篇博客詳細介紹了項目管理工具 Git 的下載安裝、環境變數配置、使用以及一些常用命令,參考了網上一些博主的介紹。有些博客只介紹下載安裝,或者只介紹 Git 命令,沒有綜合到一起。通過閱讀此博文,能夠讓對 Git 的配置與使用達到比較通達的理解,如果喜歡,請點贊收藏。 博文目錄: 一、Git ...


前言:本篇博客詳細介紹了項目管理工具 Git 的下載安裝、環境變數配置、使用以及一些常用命令,參考了網上一些博主的介紹。有些博客只介紹下載安裝,或者只介紹 Git 命令,沒有綜合到一起。通過閱讀此博文,能夠讓對 Git 的配置與使用達到比較通達的理解,如果喜歡,請點贊收藏。

博文目錄:

  • 一、Git 下載安裝
  • 二、配置環境變數
  • 三、配置 GitHub
  • 四、IDEA 中配置Git
  • 五、Git 命令總結
  • 六、Git 使用問題記錄

一、Git 下載安裝

1、官網 Git 下載

官網Git下載(按住Ctrl然後點擊鏈接成功跳轉)

根據自己的需要選擇 macOSWindowsLinux/Unix,或者直接點擊右邊電腦中 Downloads for Windows 跳轉到下載頁面。

圖1.1 Download Git 1

然後點擊 Click here to download 下載版本,或者也可以選擇 32 位或者 64 位

圖1.2 Download Git 2
2、Git 安裝步驟

Git 具體安裝步驟參考下邊鏈接,作者 maanlong ,安裝步驟介紹地較為詳細,不只是 Next 一路油門踩到底,該篇博客中還會說明每到一步以後步驟中的選項是什麼意思,是否建議選擇等。因此在此較為推薦:

Windows系統Git安裝教程(詳解Git安裝過程)

版本一直在迭代,安裝步驟大差不差,完全值得參考借鑒。安裝完成以後,在桌面上右鍵選擇:Git Bash Here會彈出下邊的命令行框。在 $ 後邊輸入命令 git -v 會出現當前你所安裝的 Git 的版本號。

圖1.3 Git Version 1

二、配置環境變數

與其他的軟體類似,Git 配置環境變數也是同樣的操作步驟:

  • 右鍵電腦 → 屬性 → 高級系統設置 → 環境變數 → 系統變數 → Path → 然後添加 Git 安裝目錄
C:\Program Files\Git\bin
  • 配置好環境變數以後,在命令提示符(Win + R)中輸入 git 會彈出以下界面,說明安裝配置成功

圖2.1 Git Version 2

三、配置 GitHub

相信對於軟體開發人員來說,GitHub 這個詞語必然是耳熟能詳。它是一個面向開源及私有軟體項目的托管平臺,因為只支持 Git 作為唯一的版本庫格式進行托管,故名 GitHub。

Git 與 GitHub 間的關係如下圖所示

圖3.1 Git 與 GitHub 關係

上邊安裝的 Git 是版本管理工具,而 GitHub 是一個代碼托管平臺,就是將自己所要提交的代碼通過 Git 工具提交到 GitHub 平臺上,用於每次的增刪改查,並且同一個項目組成員都可以拉取項目代碼,互相提交,避免衝突。

想要通過 Git 將代碼提交到 GitHub 上,就需要事先進行一些配置,這樣才能夠與 GitHub 伺服器進行連接。

1、添加 SSH key 原因

GitHub 管理項目的時候,對於本地或者遠程文件操作可以用 HTTPS 或者 SSH 進行 clone 和 push,兩者的區別在於:

  • 使用 HTTPS 可隨意 clone 或者 push 項目到 GitHub,不管誰是項目的擁有者;而使用 SSH 操作必須是項目的擁有者或者管理員,且需要添加 SSH key,否則無法 clone

  • 使用 HTTPS url 在 push 時需要驗證用戶名和密碼;使用 SSH 在 push 時可設置成無用戶名密碼,相對方便

  • GitHub 允許添加多個 Key。假定你有若幹電腦,一會兒在公司提交,一會兒在家裡提交,這樣只要把每臺電腦的 Key 都添加到 GitHub ,就可以在每臺電腦上往 GitHub 推送了

2、生成 SSH key 步驟
  • GitHub 官網上註冊一個賬號,然後桌面右鍵選擇 Git Bash Here,進行賬號配置,命令:
# 配置用戶名("username"是自己GitHub上的用戶名)
$ git config --global user.name "username"
# 配置郵箱("[email protected]"是註冊GitHub賬號時所用的郵箱)
$ git config --global user.email "[email protected]"
  • 執行完成上述命令以後,查看是否配置成功。如果成功,會顯示所配置的用戶名和郵箱,命令:
$ git config --global --list
  • 檢查電腦是否已經有 SSH key,在 Git Bash Here 中輸入命令:
$ cd ~/.ssh
# 輸完上邊命令回車
$ ls

這兩個命令就是檢查是否已經存在 id_rsa(私鑰) 或 id_dsa.pub(公鑰) 文件,如果文件已經存在,則運行命令後如下圖所示。那麼可以跳過生成 ssh key 文件的步驟,直接添加 key 到 GitHub 上。

圖3.2 檢查 SSH key是否存在
  • 執行以下命令生成 ssh-key
# 生成 ssh,ssh-keygen 命令中間無空格
$ ssh-keygen -t rsa
  • 運行上面那條命令後會讓你輸入一個文件名,用於保存剛纔生成的 SSH key 代碼,遇到下邊命令直接按回車就可以:
Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
  • 接著又會提示你輸入兩次密碼(該密碼是你 push 文件的時候要輸入的密碼,而不是 GitHub 管理者的密碼),可以不輸入密碼,直接按回車。那麼 push 的時候就不需要輸入密碼,直接提交到 GitHub 上了
Enter passphrase (empty for no passphrase): 
# Enter same passphrase again:
  • 然後會有如下代碼提示,這說明 SSH key 已經創建成功,下一步只需要添加到 GitHub 的 SSH key 上就可以,生成成功後,會有如圖3.3所示的:
Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]

圖3.3 生成 SSH key
  • 執行過命令之後,到系統盤 Users 目錄(C:\Users\電腦用戶名.ssh\),查看生成的 ssh 文件。這裡在打開 ssh 文件的時候可能會遇到 pub 文件打不開的問題,那麼在當前目錄行中輸入 cmd,定位到文件目錄下,並且在命令行中執行下述命令,這樣可以將公鑰顯示出來
$ type id_rsa.pub

圖3.4 SSH key 目錄
3、添加公鑰到 Github
  • 需要將 id_rsa.pub 文件中一大串密鑰複製到 GitHub 中,可以通過 git 命令複製文件:
$ clip < ~/.ssh/id_rsa.put
  • 登錄 GitHub 賬號,右上角進入 Settings,然後選擇左邊欄的 SSH and GPG keys 進行添加操作

  • 點擊 Add SSH key 按鈕添加一個 SSH key 。把你複製的 SSH key 代碼粘貼到 key 所對應的輸入框中,記得 SSH key 代碼的前後不要留有空格或者回車。上面的 Title 所對應的輸入框也可以輸入一個該 SSH key 顯示在 Github 上的一個別名

圖3.5 Github 添加 SSH key
  • 在 Git Bash Here 中輸入以下代碼,來檢驗是否添加 SSH 成功
$ ssh -T [email protected]
  • 當你輸入以上代碼時,會有一段警告代碼,這是正常的,你輸入 yes 回車即可。如果你創建 SSH key 的時候設置了密碼,接下來就會提示你輸入密碼,直到密碼輸入正確為止

  • 密碼正確後你會看到下麵代碼中這段話,說明已經成功設置 SSH 密鑰。如果你看到 “access denied” ,者表示拒絕訪問,那麼你就需要使用 HTTPS 去訪問,而不是 SSH

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

四、IDEA 中配置Git

作為一個後端 Java 開發人員,使用 Git 作為代碼版本管理工具是非常必要的,如果能夠在 IntelliJ IDEA 中配置好 Git,那麼會大大提高開發效率。因此這裡以 IDEA 為例,進行 Git 配置的介紹。

下圖來自 Oliver Steele (http://osteele.com) ,解釋了 git 模型和命令:

圖4.1 Git Data Transport Commands

相關概念需要清楚

  • workspace:工作區。也就是平時存放代碼的地方
  • indexstaging area:暫存區/緩存區。臨時存放代碼的改動,保存即將提交到文件列表的信息
  • local repository:版本庫/本地倉庫。安全存放數據的位置,其中 HEAD 指向最新放入倉庫的版本
  • remote repository:遠程倉庫。托管代碼的伺服器

Git 作為支持分散式版本管理的工具,它管理的庫(repository)分為本地庫、遠程庫

  • git add 添加文件到暫存區

  • git commit 操作的是本地庫,將本地修改過的文件提交到本地庫(local repository)中

  • git push 操作的是遠程庫,將本地庫中的最新信息發送給遠程庫(remote repository)中

  • git fetch 操作的是遠程倉庫,從遠程庫中獲取數據到本地倉庫中

  • git pull 是 git fetch + git merge ,就是先 fetch,然後執行 merge 操作,如果加 -rebase 參數,就是使用 git rebase 代替 git merge

  • update project 可以選擇是 merge 還是 rebase

merge 與 rebase 兩個命令的區別聯繫:

  • merge 命令會保留所有 commit 的歷史時間不被修改,這樣就形成了以 merge 時間為基準的網狀歷史結構,每個分支上都會繼續保留各自的代碼記錄,主分支上只保留 merge 的歷史紀錄,子分支隨時可能被刪除

  • rebase 命令會始終把最新的修改放到最前頭,對主分支進行 rebase 後,所有的修改就會在主分支所有修改之前進行修改

創建本地倉庫的兩種方法:一種是創建全新的倉庫,一種是複製遠程的倉庫。

1、IntelliJ IDEA 中配置 Github
  • File → Settings → Version Control → Git,如果已經安裝了 Git 工具,點擊 Test 按鈕,會顯示安裝路徑以及所安裝的 Git 版本號

圖4.2 IDEA Config Git 1
  • 然後點擊 Version Control 下邊的 GitHub,點擊 + 號,選擇 Log In via GitHub,頁面會自動跳轉,需要在 GitHub 中進行授權,出現自己 GitHub 頭像表示綁定成功。既然已經配置了 SSH key,那麼就在下邊 Clone git repositories using ssh 前邊打勾

圖4.3 IDEA Config Git 2
  • 點擊 IDEA 上邊 VCS,選擇 Create Git Repository,然後可以拉取代碼

圖4.4 IDEA Config Git 3
  • 配置完成如下圖4.5所示

圖4.5 IDEA Config Git 4
  • 如果想要讓你的 IDEA 的 Terminal 終端打開能使用 Git 命令,需要做簡單配置:Settings → Tools → Terminal → Shell path,選擇 Git 安裝路徑下邊的 base.exe 即可

圖4.6 IDEA Config Git 5
2、IDEA中使用 Git 時 Project 中的文件會有不同的顏色
  • 紅色——未加入版本控制

  • 綠色——已經加入控制暫未提交

  • 白色——加入,已提交,無改動

  • 藍色——加入,已提交,有改動

  • 灰色——版本控制已忽略文件

  • 黃色——被 git 忽略,不跟蹤

五、Git 命令總結

1、新建代碼庫
# 在當前目錄新建一個Git代碼庫
$ git init
 
# 新建一個目錄,將其初始化為Git代碼庫
$ git init [project-name]
 
# 下載一個項目和它的整個代碼歷史
$ git clone [url]
2、配置
# 顯示當前的Git配置
$ git config --list
 
# 編輯Git配置文件
$ git config -e [--global]
 
# 設置提交代碼時的用戶信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
3、增加/刪除文件
# 定位到 C盤
$ cd C:

# 顯示當前目錄
$ pwd

# 添加指定文件到暫存區
$ git add [file1] [file2] ...
 
# 添加指定目錄到暫存區,包括子目錄
$ git add [dir]
 
# 添加當前目錄的所有文件到暫存區
$ git add .
 
# 添加每個變化前,都會要求確認
# 對於同一個文件的多處變化,可以實現分次提交
$ git add -p
 
# 刪除工作區文件,並且將這次刪除放入暫存區
$ git rm [file1] [file2] ...
 
# 停止追蹤指定文件,但該文件會保留在工作區
$ git rm --cached [file]

# 刪除緩存
$ git rm -r -f cached ./
 
# 改名文件,並且將這個改名放入暫存區
$ git mv [file-original] [file-renamed]
4、代碼提交
# 提交暫存區到倉庫區
$ git commit -m [message]
 
# 提交暫存區的指定文件到倉庫區
$ git commit [file1] [file2] ... -m [message]
 
# 提交工作區自上次commit之後的變化,直接到倉庫區
$ git commit -a
 
# 提交時顯示所有diff信息
$ git commit -v
 
# 使用一次新的commit,替代上一次提交
# 如果代碼沒有任何新變化,則用來改寫上一次commit的提交信息
$ git commit --amend -m [message]
 
# 重做上一次commit,並包括指定文件的新變化
$ git commit --amend [file1] [file2] ...
5、分支
# 列出所有本地分支
$ git branch
 
# 列出所有遠程分支
$ git branch -r
 
# 列出所有本地分支和遠程分支
$ git branch -a
 
# 新建一個分支,但依然停留在當前分支
$ git branch [branch-name]
 
# 新建一個分支,並切換到該分支
$ git checkout -b [branch]
 
# 新建一個分支,指向指定commit
$ git branch [branch] [commit]
 
# 新建一個分支,與指定的遠程分支建立追蹤關係
$ git branch --track [branch] [remote-branch]
 
# 切換到指定分支,並更新工作區
$ git checkout [branch-name]
 
# 切換到上一個分支
$ git checkout -
 
# 建立追蹤關係,在現有分支與指定的遠程分支之間
$ git branch --set-upstream [branch] [remote-branch]
 
# 合併指定分支到當前分支
$ git merge [branch]
 
# 選擇一個commit,合併進當前分支
$ git cherry-pick [commit]
 
# 刪除分支
$ git branch -d [branch-name]
 
# 刪除遠程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
6、標簽
# 列出所有tag
$ git tag
 
# 新建一個tag在當前commit
$ git tag [tag]
 
# 新建一個tag在指定commit
$ git tag [tag] [commit]
 
# 刪除本地tag
$ git tag -d [tag]
 
# 刪除遠程tag
$ git push origin :refs/tags/[tagName]
 
# 查看tag信息
$ git show [tag]
 
# 提交指定tag
$ git push [remote] [tag]
 
# 提交所有tag
$ git push [remote] --tags
 
# 新建一個分支,指向某個tag
$ git checkout -b [branch] [tag]
7、查看信息
# 顯示有變更的文件
$ git status
 
# 顯示當前分支的版本歷史,其中commit後黃色字體顯示的是每次提交的版本號,git log 命令顯示從最近到最遠的顯示日誌
$ git log
 
# 顯示commit歷史,以及每次commit發生變更的文件
$ git log --stat
 
# 搜索提交歷史,根據關鍵詞
$ git log -S [keyword]
 
# 顯示某個commit之後的所有變動,每個commit占據一行
$ git log [tag] HEAD --pretty=format:%s
 
# 顯示某個commit之後的所有變動,其"提交說明"必須符合搜索條件
$ git log [tag] HEAD --grep feature
 
# 顯示某個文件的版本歷史,包括文件改名
$ git log --follow [file]
$ git whatchanged [file]
 
# 顯示指定文件相關的每一次diff
$ git log -p [file]
 
# 顯示過去5次提交
$ git log -5 --pretty --oneline
 
# 顯示所有提交過的用戶,按提交次數排序
$ git shortlog -sn
 
# 顯示指定文件是什麼人在什麼時間修改過
$ git blame [file]
 
# 顯示暫存區和工作區的差異
$ git diff
 
# 顯示暫存區和上一個commit的差異
$ git diff --cached [file]
 
# 顯示工作區與當前分支最新commit之間的差異
$ git diff HEAD
 
# 顯示兩次提交之間的差異
$ git diff [first-branch]...[second-branch]
 
# 顯示今天你寫了多少行代碼
$ git diff --shortstat "@{0 day ago}"
 
# 顯示某次提交的元數據和內容變化
$ git show [commit]
 
# 顯示某次提交發生變化的文件
$ git show --name-only [commit]
 
# 顯示某次提交時,某個文件的內容
$ git show [commit]:[filename]
 
# 顯示當前分支的最近幾次提交
$ git reflog
8、遠程同步
# 下載遠程倉庫的所有變動
$ git fetch [remote]
 
# 顯示所有遠程倉庫
$ git remote -v
 
# 顯示某個遠程倉庫的信息
$ git remote show [remote]
 
# 增加一個新的遠程倉庫,並命名
$ git remote add [shortname] [url]
 
# 取回遠程倉庫的變化,並與本地分支合併
$ git pull [remote] [branch]
 
# 上傳本地指定分支到遠程倉庫
$ git push [remote] [branch]
 
# 強行推送當前分支到遠程倉庫,即使有衝突
$ git push [remote] --force
 
# 推送所有分支到遠程倉庫
$ git push [remote] --all
9、撤銷
# 恢復暫存區的指定文件到工作區
$ git checkout [file]
 
# 恢復某個commit的指定文件到暫存區和工作區
$ git checkout [commit] [file]
 
# 恢復暫存區的所有文件到工作區
$ git checkout .
 
# 重置暫存區的指定文件,與上一次commit保持一致,但工作區不變
$ git reset [file]
 
# 重置暫存區與工作區,與上一次commit保持一致
$ git reset --hard
 
# 重置當前分支的指針為指定commit,同時重置暫存區,但工作區不變
$ git reset [commit]
 
# 重置當前分支的HEAD為指定commit,同時重置暫存區和工作區,與指定commit版本一致
$ git reset --hard [commit]
 
# 重置當前HEAD為指定commit,但保持暫存區和工作區不變
$ git reset --keep [commit]
 
# 新建一個commit,用來撤銷指定commit
# 後者的所有變化都將被前者抵消,並且應用到當前分支
$ git revert [commit]
 
# 暫時將未提交的變化移除,稍後再移入
$ git stash
$ git stash pop
10、其他
# 生成一個可供發佈的壓縮包
$ git archive
 
# 添加或指定遠程倉庫地址
$ git remote set-url origin "https://..."
$ git config remote.origin.url "https://..."
 
# 刪除
$ git remote rm origin

六、Git 使用問題記錄

1、Git 提示:Can't update(master has no tracked branc)
  • 原因:本地分支和遠程分支沒有關聯,需要關聯遠程分支

  • 解決:git push --set-upstream origin maser

  • 原因:要提交或更新的文件被系統線程占用
  • 解決:把相關服務暫停,重新pull代碼
3、更新代碼後顯示: the following untracked working tree files would be overwritten by checkout
  • 原因:本地代碼倉庫目錄下有untracked文件
  • 解決:如果沒有需要上庫的代碼,直接執行 git clean -d -fx 刪除untracked文件
4、git pull的時候認證失敗:remote: invalid Login or password fatal: Authentication failed for ‘https://…’
  • 原因:賬號密碼失效或者是未登錄
  • 解決:windows賬戶下,控制面板 → 用戶帳戶 → windows憑據 → 修改git密碼
5、版本回退git reset --hard {hash}後提示:fatal: could not parse object “hash id”
  • 原因:切換到master分支後沒有更新最新代碼,git log不包含要reset的節點
  • 解決:更新代碼後git log找到對應節點hash id再reset

附錄:

Git 官方GitHub

參考鏈接:

https://www.jianshu.com/p/e3385a0e4907
github設置添加SSH - 破男孩 - 博客園 (cnblogs.com)
https://www.cnblogs.com/liudinglong/p/14028026.html
https://blog.csdn.net/baidu_35692628/article/details/78330055


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 什麼是事件委托: 通俗的講,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是讓別人來做,這個事件本來是加在某些元素上的。 原理: 利用冒泡的原理,把事件加到父級上,觸發執行效果。 例如:要點擊刪除 ul 下的 li ,一般是都要給每個小li 綁定點擊事件 ...
  • 更多技術文章,請關註我的個人博客 www.immaxfang.com 和小公眾號 Max的學習札記。 Redis 客戶端和服務端之間是採用 TCP 協議進行通信的,是基於 Request/Response 這種一問一答的模式,即請求一次響應一次。 普通模式 我們先來看下普通模式下,一條 Redis ...
  • hi,這裡是桑小榆呀。 前面我們一起探討了一個微服務的概念瞭解,微服務,也稱為微服務架構,是一種架構風格,它將應用程式構建為服務的集合。集合里的每個服務具有高度可維護和可測試、松耦合效果、圍繞業務能力組織,由一個小團隊擁有。 我們知道,微服務架構是一種架構風格,所謂的架構風格就是一種抽象的結構,它由 ...
  • 您好,我是湘王,這是我的博客園,歡迎您來,歡迎您再來~ 開完一趟車完整的過程是啟動、行駛和停車,但老司機都知道,真正費油的不是行駛,而是長時間的怠速、頻繁地踩剎車等動作。因為在速度切換的過程中,發送機要多做一些工作,當然就要多費一些油。 而一個Java線程完整的生命周期就包括: 1、T1:創建(啟動 ...
  • 簡介 工廠模式屬於創建型模式,可以分為三種:簡單工廠、工廠模式、抽象工廠。 通俗講就是用於如何優雅的創建對象而設計。當開發者不知道建什麼對象,或者創建方式過於複雜的時候去使用(比如引入一個大composer項目或大型sdk,有些時候確實不知道需要使用那些對象,此時就需要參考官方文檔,通過包里或sdk ...
  • 位置: from rest_framework.views import APIView 繼承APIView類視圖形式的路由: path('booksapiview/', views.BooksAPIView.as_view()), #在這個地方應該寫個函數記憶體地址 繼承APIView類的視圖函數: ...
  • 什麼是CopyOnWrite容器 【1】CopyOnWrite容器是基於併發模式Copy-on-Write模式(最簡單的併發解決方案)實現的用於避免共用的數據集合。 【2】CopyOnWrite容器又被成為寫時複製的容器,即當我們往一個容器添加元素的時候,不直接往當前容器添加,而是先將當前容器進行C ...
  • 年份天數 題目 輸入某年某月某日,判斷這一天是這一年的第幾天?特殊情況,閏年時需考慮二月多加一天 解答 year = int(input("input year: "))month = int(input("input month: "))day = int(input("input day: ") ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...