從 Git 到 GitHub - 使用 Git 進行版本控制 - Git 常用命令

希望本貼能從零開始帶您一起學習如何使用 Git 進行版本控制,并結合遠程倉庫 GitHub。這會是一個循序漸進的指南,我們開始吧!

學習 Git 和 GitHub 的路線圖:

  1. 理解核心概念:什么是版本控制?Git 是什么?GitHub 是什么?
  2. 安裝 Git
  3. 配置 Git
  4. 本地倉庫操作:創建倉庫、暫存、提交、查看歷史、分支、合并
  5. GitHub 遠程倉庫操作:注冊 GitHub、創建遠程倉庫、連接本地與遠程、推送、克隆、拉取
  6. 基本協作流程 (簡介):Fork、Pull Request
  7. 好習慣和下一步

  • 視頻教程 (可視化git很推薦):Git + GitHub 10分鐘完全入門
  • 安裝教程 (非常推薦):Git 詳細安裝教程(詳解 Git 安裝過程每一步)

第一部分:理解核心概念

  • 什么是版本控制 (Version Control System, VCS)?

    • 想象一下你在寫一篇重要的文檔或代碼。你可能會保存多個版本,比如 report_v1.doc, report_v2.doc, report_final.doc, report_final_really_final.doc
    • 版本控制系統就是一個能幫你自動追蹤文件修改歷史的工具。它記錄了誰、在什么時候、對什么文件做了什么修改。
    • 好處:
      • 歷史追溯:可以查看任何歷史版本。
      • 錯誤恢復:如果不小心改錯了,可以輕松回滾到之前的某個版本。
      • 團隊協作:多人可以同時在同一個項目上工作,而不會互相覆蓋對方的修改。
      • 分支開發:可以創建“分支”來嘗試新功能或修復 bug,而不影響主線開發。
  • Git 是什么?

    • Git 是目前世界上最先進、最流行的分布式版本控制系統
    • 分布式意味著每個開發者都擁有項目完整的歷史副本,不像集中式版本控制系統那樣需要時刻連接中央服務器。這使得離線工作和更快的操作成為可能。
    • 它由 Linux 的創始人 Linus Torvalds 開發,最初是為了管理 Linux 內核的開發。
  • GitHub 是什么?

    • GitHub 是一個基于網頁的 Git 版本庫托管服務
    • 它為你的 Git 倉庫提供了一個遠程存儲空間,并提供了許多協作功能,如問題跟蹤、代碼審查 (Pull Requests)、項目管理等。
    • 簡單來說:Git 是工具,GitHub 是平臺 (或服務)。你可以只在本地使用 Git,但結合 GitHub 可以更好地備份、分享和協作。
    • 類似的平臺還有 GitLab, Bitbucket 等。

第二部分:安裝 Git

  • Windows:
    • 訪問 https://git-scm.com/download/win 下載 Git for Windows。
    • 來自Git 詳細安裝教程(詳解 Git 安裝過程的每一個步驟)
  • 具體可參考這篇全網最佳的Git安裝教程 (非常推薦):
    Git 詳細安裝教程(詳解 Git 安裝過程每一步)

    * 運行安裝程序,大部分選項保持默認即可。建議勾選 “run with bash” (在右鍵菜單中添加 Git Bash 選項) 和 “Add Git Bash for Windows Terminal” (如果你想在 終端 (Terminal) 或 命令提示符 (Command Prompt) 中使用)。
  • macOS:
    • 最簡單的方式是安裝 Xcode Command Line Tools。打開終端 (Terminal),輸入 git --version。如果沒安裝,系統會提示你安裝。
    • 或者通過 Homebrew 安裝: brew install git
    • 也可以從 https://git-scm.com/download/mac 下載安裝包。
  • Linux (Debian/Ubuntu):
    • 打開終端,輸入: sudo apt update && sudo apt install git
  • 驗證安裝:
    • 安裝完成后,打開終端 (Windows 用戶可以使用 Git Bash),輸入以下命令查看 Git 版本:
      git --version
      
      如果顯示出版本號,說明安裝成功。

第三部分:配置 Git

在你開始使用 Git 之前,需要設置你的用戶名和郵箱地址。這些信息會附加到你的每一次提交 (commit) 中,用于標識是誰做的修改。

打開終端 (或 Git Bash),執行以下命令,將引號中的內容替換為你自己的信息:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
  • --global 表示這個配置對你在這臺電腦上的所有 Git 倉庫都生效。
  • 你可以通過以下命令檢查配置是否成功:
    git config --list
    

第四部分:本地倉庫操作

現在我們開始在你的電腦上使用 Git。

  1. 創建一個新項目文件夾 (或進入已有項目文件夾)

    mkdir my-git-project  # 創建一個名為 my-git-project 的文件夾
    cd my-git-project     # 進入該文件夾
    
  2. 初始化 Git 倉庫 (git init)
    在你的項目文件夾中,執行以下命令將其初始化為一個 Git 倉庫:

    git init
    

    這會在當前目錄下創建一個隱藏的 .git 子目錄,它包含了 Git 倉庫的所有元數據和對象數據庫。

  3. Git 的三個區域 (重要概念)

    • 工作區 (Working Directory):你實際看到和編輯文件的項目文件夾。
    • 暫存區 (Staging Area / Index):一個特殊的文件,它保存了下次將要提交的文件列表信息。你可以選擇性地將工作區的修改添加到暫存區。
    • 本地倉庫 (Local Repository / .git directory):Git 用來保存項目元數據和對象數據庫的地方。當你執行 git commit 時,暫存區的文件快照會被永久地儲存在本地倉庫中。

    基本流程是: 在工作區修改文件 -> 將修改添加到暫存區 -> 將暫存區的修改提交到本地倉庫。

  4. 檢查狀態 (git status)
    這個命令非常重要,它會告訴你當前倉庫的狀態:哪些文件被修改了?哪些文件在暫存區?等等。

    git status
    

    剛初始化的倉庫,它會提示你沒有可提交的內容,但可能有未跟蹤的文件。

  5. 創建和修改文件
    現在,我們在項目里創建一個文件,比如 readme.md

    echo "# My Awesome Project" > readme.md
    echo "This is a project to learn Git and GitHub." >> readme.md
    

    再次運行 git status,你會看到 readme.md 被列為 “Untracked files” (未跟蹤文件)。

  6. 添加到暫存區 (git add)
    要讓 Git 開始追蹤這個文件并準備提交它的當前版本,你需要使用 git add 命令。

    • 添加指定文件:
      git add readme.md
      
    • 添加所有已修改或新增的文件:
      git add .
      

    現在再運行 git status,你會看到 readme.md 被列為 “Changes to be committed” (待提交的更改)。

  7. 提交到本地倉庫 (git commit)
    將暫存區的內容提交到本地倉庫,形成一個新的版本快照。每次提交都需要一個有意義的提交信息 (commit message),說明這次提交做了什么。

    git commit -m "Initial commit: Add readme.md"
    
    • -m 選項后面跟著的是提交信息。
    • 良好的提交信息非常重要!

    現在運行 git status,會提示 “nothing to commit, working tree clean” (沒有東西要提交,工作區是干凈的)。

  8. 查看提交歷史 (git log)
    查看項目的提交記錄:

    git log
    

    你會看到你剛才的提交,包含提交哈希值 (一個唯一的ID)、作者、日期和提交信息。

    • q 退出 git log 的查看。
    • git log --oneline 會顯示更簡潔的日志。
  9. 進行更多修改并提交
    讓我們修改 readme.md 并添加一個新文件 main.py

    echo "More details about the project." >> readme.md
    echo "print('Hello, Git!')" > main.py
    

    運行 git status,你會看到 readme.md 被修改 (modified),main.py 是未跟蹤的。

    git add .  # 或者 git add readme.md main.py
    git commit -m "Add main.py and update readme"
    

    再次查看 git log --oneline,你會看到兩條提交記錄。

  10. 分支 (Branching)
    分支能在不影響主開發線 (通常是 mainmaster 分支) 的情況下進行開發、實驗新功能或修復 bug。

    • 查看分支 (git branch):

      git branch
      

      你會看到一個名為 main (或 master) 的分支,并且前面有一個 * 號,表示你當前所在的分支。

    • 創建新分支 (git branch <branch-name>):

      git branch feature-login
      

      這創建了一個名為 feature-login 的新分支,它基于你當前所在的分支。

    • 切換分支 (git checkout <branch-name>git switch <branch-name>):
      git switch 是較新的命令,推薦使用。

      git switch feature-login
      

      現在你就在 feature-login 分支上了。git branch 會顯示 * feature-login

    • 在分支上工作:
      現在你在 feature-login 分支上做的任何修改和提交都只屬于這個分支,不會影響 main 分支。

      echo "print('Login functionality')" > login.py
      git add login.py
      git commit -m "Add basic login feature structure"
      
  11. 合并分支 (git merge)
    當你完成了在 feature-login 分支上的工作,并且測試通過后,你可能想把它合并回 main 分支。

    • 首先,切換回目標分支 (通常是 main):

      git switch main
      
    • 然后,執行合并命令:

      git merge feature-login
      

      Git 會嘗試自動合并 feature-login 分支的更改到 main 分支。

      • 如果順利,main 分支現在就包含了 feature-login 的所有提交。
      • 沖突 (Conflict):如果兩個分支修改了同一個文件的同一部分,Git 可能無法自動合并,這時會發生沖突。你需要手動解決沖突,然后再次提交。 (解決沖突是進階內容,這里先了解概念)
    • 刪除已合并的分支 (可選):
      一旦分支被合并并且不再需要,可以刪除它:

      git branch -d feature-login
      

第五部分:GitHub 遠程倉庫操作

現在,我們將本地的 Git 倉庫連接到 GitHub 上的遠程倉庫,以便備份、分享和協作。

  1. 注冊 GitHub 賬號
    如果你還沒有 GitHub 賬號,請訪問 https://github.com/ 注冊一個。

  2. 在 GitHub 上創建新的遠程倉庫

    • 登錄 GitHub。
    • 點擊右上角的 “+” 號,選擇 “New repository”。
    • Repository name: 給你的倉庫起個名字 (例如,my-git-project,最好和本地文件夾名一致,但非必需)。
    • Description (optional): 簡單描述你的項目。
    • Public / Private: Public 倉庫任何人都可以看到,Private 倉庫只有你和你授權的人可以看到。初學建議 Public。
    • Initialize this repository with:
      • 不要勾選 “Add a README file”、“Add .gitignore” 或 “Choose a license”,因為我們本地已經有項目了,并且想把本地項目推送上去。如果勾選了,遠程倉庫會有初始提交,會和你本地倉庫的初始提交不一致,導致推送復雜化。
    • 點擊 “Create repository”。
  3. 連接本地倉庫到遠程倉庫 (git remote add)
    創建倉庫后,GitHub 會顯示一些指令。找到 “…or push an existing repository from the command line” 部分,那里有你的遠程倉庫 URL (通常是 HTTPS 或 SSH 格式)。我們用 HTTPS 格式。

    在你的本地項目文件夾的終端中,執行:

    git remote add origin https://github.com/YOUR_USERNAME/YOUR_REPOSITORY_NAME.git
    
    • YOUR_USERNAME 替換為你的 GitHub 用戶名。
    • YOUR_REPOSITORY_NAME.git 替換為你在 GitHub 上創建的倉庫名 (如 my-git-project.git)。
    • origin 是這個遠程倉庫的默認別名。你可以有多個遠程倉庫,并給它們不同的別名。

    你可以用 git remote -v 查看已配置的遠程倉庫。

  4. 推送本地更改到遠程倉庫 (git push)
    現在,將你本地 main 分支的所有提交推送到 GitHub 上的 origin 遠程倉庫。

    git push -u origin main
    
    • push: 推送命令。
    • -u (或 --set-upstream): 這個選項會將本地的 main 分支與遠程的 origin/main 分支關聯起來。這樣,以后你在這個分支上執行 git pushgit pull 時,就不需要再指定遠程倉庫和分支名了。第一次推送時建議使用 -u
    • origin: 遠程倉庫的別名。
    • main: 你要推送的本地分支名。

    執行此命令時,Git 可能會提示你輸入 GitHub 的用戶名和密碼 (或者 Personal Access Token,對于 HTTPS 而言,密碼方式逐漸被棄用,推薦使用 Token)。

    推送成功后,刷新你在 GitHub 上的倉庫頁面,就能看到你的文件和提交歷史了!

  5. 克隆遠程倉庫 (git clone)
    如果你想在另一臺電腦上獲取 GitHub 上的項目,或者你想獲取別人的公開項目,可以使用 git clone

    • 在 GitHub 上找到你想克隆的倉庫。
    • 點擊綠色的 “Code” 按鈕,復制 HTTPS 或 SSH URL。
    • 在你的電腦上,打開終端,cd 到你想要存放項目的目錄下,然后執行:
      git clone https://github.com/SOMEONE_ELSE/SOME_REPOSITORY.git
      

    這會將整個項目 (包括所有歷史記錄) 下載到你的電腦上,并自動設置好名為 origin 的遠程倉庫指向。

  6. 從遠程倉庫拉取更新 (git pull)
    如果遠程倉庫有了新的提交 (比如你的同事推送了更新,或者你在 GitHub 網站上直接做了修改),你需要將這些更新拉取到你的本地倉庫。
    在你的本地項目文件夾中,確保你在正確的分支上 (例如 main):

    git pull origin main
    

    如果之前推送時用了 -u 選項,可以簡化為:

    git pull
    

    git pull 實際上是 git fetch (從遠程獲取最新版本庫數據) 和 git merge (將遠程分支合并到當前本地分支) 兩個命令的組合。


第六部分:基本協作流程 (簡介)

當多人協作或參與開源項目時,通常會用到以下流程:

  1. Fork (分叉):

    • 如果你想為一個你沒有直接寫入權限的 GitHub 項目做貢獻,你可以先 “Fork” 這個項目。
    • Fork 操作會在你的 GitHub 賬號下創建一個該項目的完整副本。
  2. Clone (克隆):

    • 將你 Fork 后的倉庫 (即你賬號下的那個副本) 克隆到你的本地電腦。
    • git clone https://github.com/YOUR_USERNAME/FORKED_REPOSITORY.git
  3. 創建分支、修改、提交、推送:

    • 在你的本地倉庫中創建一個新分支來進行修改。
    • 完成修改后,提交到本地倉庫。
    • 將你的本地分支推送到你 Fork 的遠程倉庫 (即 origin,指向你 GitHub 賬號下的副本)。
      git push origin your-feature-branch
      
  4. Pull Request (PR / 合并請求):

    • 回到你 Fork 的 GitHub 倉庫頁面,你會看到一個提示,可以基于你剛推送的分支創建一個 “Pull Request”。
    • Pull Request 是請求原項目維護者將你的修改合并到他們的主項目中。
    • 在 PR 中,你可以描述你的修改,項目維護者可以審查你的代碼,提出評論或要求修改,最終決定是否合并。

這是 GitHub 協作的核心。


第七部分:好習慣和下一步

  • 頻繁提交,提交信息清晰:
    • 每次完成一個小功能或修復一個小 bug 就進行一次提交。
    • 提交信息要清晰地描述你做了什么。例如:“Fix: User login button unresponsive” 或 “Feat: Add password reset functionality”。
  • 經常拉取更新: 在開始新工作前,或準備推送前,先 git pull 獲取遠程最新代碼,避免沖突。
  • 使用分支: 不要直接在 main 分支上進行大量開發,為新功能、bug 修復等創建專門的分支。
  • .gitignore 文件:
    • 在項目中創建一個名為 .gitignore 的文件,列出那些你不想讓 Git 追蹤的文件或文件夾 (例如編譯產生的文件、日志文件、IDE 配置文件、敏感信息如 API 密鑰等)。
    • 例如,一個 Python 項目的 .gitignore 可能包含:
      __pycache__/
      *.pyc
      .env
      venv/
      
    • GitHub 提供了很多語言和框架的 .gitignore 模板。

下一步學習:

  • 解決合并沖突
  • git rebase (另一種合并分支的方式,可以使歷史更線性)
  • git stash (臨時保存未提交的更改)
  • git resetgit revert (撤銷提交)
  • 標簽 (Tagging versions, e.g., v1.0)
  • 更高級的 GitHub 功能 (Issues, Actions, Projects)
  • Git GUI 客戶端 (如本文最開頭推薦的 Git + GitKraken + GitHub 可視化Git 10分鐘完全入門, GitHub Desktop, VS Code 自帶的 Git 工具),它們可以提供圖形化界面,有時更直觀。

動手實踐很關鍵,創建一個測試項目,按照上面的步驟一步步操作,多用 git statusgit log 來觀察變化。祝你學習愉快!遇到問題隨時可以提問 GPT,通過與GPT多輪問答,可以學到幾乎所有公開知識。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79690.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79690.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79690.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025.05.11拼多多機考真題算法崗-第四題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍OJ 04. 記憶碎片重組 問題描述 盧小姐正在開發一款名為"記憶碎片"的游戲,玩家需要分析混亂的記憶數據,推測出形成這些記憶的原始序列。游戲中,記憶數據存儲在一個特殊的數…

Android Exoplayer多路不同時長音視頻混合播放

在上一篇Android Exoplayer 實現多個音視頻文件混合播放以及音軌切換中我們提到一個問題&#xff0c;如果視頻和音頻時長不一致&#xff0c;特別是想混合多個音頻和多個視頻時就會出問題&#xff0c;無法播放。報錯如下&#xff1a; E/ExoPlayerImplInternal(11191): Playback…

Datawhale PyPOTS時間序列5月第1次筆記

課程原地址&#xff1a; https://github.com/WenjieDu/PyPOTS&#xff08;Package地址&#xff09; https://github.com/WenjieDu/BrewPOTS/tree/datawhale/202505_datawhale&#xff08;Tutorial地址&#xff09; 2.1 PyPOTS簡介 PyPOTS 是一個專為處理部分觀測時間序列&a…

網安學途—流量分析 attack.pcap

attack.pacp 使用Wireshark查看并分析虛擬機windows 7桌面下的attack.pcapng數據包文件&#xff0c;通過分析數據包attack.pcapng找出黑客的IP地址&#xff0c;并將黑客的IP地址作為FLAG &#xff08;形式&#xff1a;[IP地址]&#xff09;提交&#xff1a; 過濾器篩選&#x…

【大模型】DeepResearcher:通用智能體通過強化學習探索優化

DeepResearcher&#xff1a;通過強化學習在真實環境中擴展深度研究 一、引言二、技術原理&#xff08;一&#xff09;強化學習與深度研究代理&#xff08;二&#xff09;認知行為的出現&#xff08;三&#xff09;模型架構 三、實戰運行方式&#xff08;一&#xff09;環境搭建…

go語言實現IP歸屬地查詢

效果: 實現代碼main.go package mainimport ("encoding/json""fmt""io/ioutil""net/http""os" )type AreaData struct {Continent string json:"continent"Country string json:"country"ZipCode …

基于STM32、HAL庫的SGTL5000XNLA3R2音頻接口芯片驅動程序設計

一、簡介: SGTL5000XNLA3R2 是 Cirrus Logic 推出的高性能、低功耗音頻編解碼器,專為便攜式和電池供電設備設計。它集成了立體聲 ADC、DAC、麥克風前置放大器、耳機放大器和數字信號處理功能,支持 I2S/PCM 音頻接口和 I2C 控制接口,非常適合與 STM32 微控制器配合使用。 二…

window 顯示驅動開發-報告圖形內存(一)

計算圖形內存 在 VidMm 能夠向客戶端報告準確的帳戶之前&#xff0c;它必須首先計算圖形內存的總量。 VidMm 使用以下內存類型和公式來計算圖形內存&#xff1a; 系統總內存 此值是操作系統可訪問的系統內存總量。 BIOS 分配的內存不會出現在此數字中。 例如&#xff0c;一臺…

[FA1C4] 博客鏈接

Blog Link 博客已經從 CSDN 轉移 高情商&#xff1a;博客是給人看的 低情商&#xff1a;CSDN 已經爛了根本不能看 鏈接: https://fa1c4.github.io/

python通過curl訪問deepseek的API調用案例

廢話少說&#xff0c;開干&#xff01; API申請和充值 下面是deepeek的API網站 https://platform.deepseek.com/ 進去先注冊&#xff0c;是不是手機賬號密碼都不重要&#xff0c;都一樣&#xff0c;完事充值打米&#xff0c;主要是打米后左側API Keys里面創建一個API Keys&am…

【計算機視覺】OpenCV項目實戰:基于face_recognition庫的實時人臉識別系統深度解析

基于face_recognition庫的實時人臉識別系統深度解析 1. 項目概述2. 技術原理與算法設計2.1 人臉檢測模塊2.2 特征編碼2.3 相似度計算 3. 實戰部署指南3.1 環境配置3.2 數據準備3.3 實時識別流程 4. 常見問題與解決方案4.1 dlib安裝失敗4.2 人臉檢測性能差4.3 誤識別率高 5. 關鍵…

第6章: SEO與交互指標

第6章: SEO與交互指標 在當今的SEO環境中&#xff0c;Google越來越重視用戶交互指標&#xff0c;如頁面停留時長、交互性能等。本章將深入探討如何優化網頁速度和用戶交互體驗&#xff0c;以提升SEO效果和用戶滿意度。 1. Google的新時代SEO指標 隨著互聯網技術的發展&#xff…

Starrocks的主鍵表涉及到的MOR Delete+Insert更新策略

背景 寫這個文章的作用主要是做一些總結和梳理&#xff0c;特別是正對大數據場景下的實時寫入更新策略 COW 和 MOR 以及 DeleteInsert 的技術策略的演進&#xff0c; 這也適用于其他大數據的計算存儲系統。該文章主要參考了Primary Key table. 分析總結 Starrocks 的主鍵表主…

C 語言_常見排序算法全解析

排序算法是計算機科學中的基礎內容,本文將介紹 C 語言中幾種常見的排序算法,包括實現代碼、時間復雜度分析、適用場景和詳細解析。 一、冒泡排序(Bubble Sort) 基本思想:重復遍歷數組,比較相鄰元素,將較大元素交換到右側。 代碼實現: void bubbleSort(int arr[], i…

JIT+Opcache如何配置才能達到性能最優

首先打開php.ini文件&#xff0c;進行配置 1、OPcache配置 ; 啟用OPcache opcache.enable1; CLI環境下啟用OPcache&#xff08;按需配置&#xff09; opcache.enable_cli0; 預加載腳本&#xff08;PHP 7.4&#xff0c;加速常用類&#xff09; ; opcache.preload/path/to/prel…

Python訓練打卡Day23

機器學習管道 pipeline 基礎概念 pipeline在機器學習領域可以翻譯為“管道”&#xff0c;也可以翻譯為“流水線”&#xff0c;是機器學習中一個重要的概念。 在機器學習中&#xff0c;通常會按照一定的順序對數據進行預處理、特征提取、模型訓練和模型評估等步驟&#xff0c;以…

GPU SIMT架構的極限壓榨:PTX匯編指令級并行優化實踐

點擊 “AladdinEdu&#xff0c;同學們用得起的【H卡】算力平臺”&#xff0c;H卡級別算力&#xff0c;按量計費&#xff0c;靈活彈性&#xff0c;頂級配置&#xff0c;學生專屬優惠。 一、SIMT架構的調度哲學與寄存器平衡藝術 1.1 Warp Scheduler的調度策略解構 在NVIDIA GPU…

HarmonyOS 【詩韻悠然】AI古詩詞賞析APP開發實戰從零到一系列(二、項目準備與后臺服務搭建)

在開發一款面向HarmonyOS平臺的應用程序——【詩韻悠然】AI古詩詞賞析APP時&#xff0c;選擇了流行Go語言作為后端開發語言&#xff0c;并使用了go-zero微服務框架來搭建服務接口。本文將詳細介紹項目準備和后臺服務搭建的過程&#xff0c;幫助大家更好地理解和掌握go-zero框架…

QT5.14安裝以及新建基礎項目

進入qt中文網站&#xff1a;Qt | 軟件開發全周期的各階段工具 額&#xff0c;考慮新手可能還是找不到&#xff0c;我就分享一下我下載的的吧 通過網盤分享的文件&#xff1a;qt-opensource-windows-x86-5.14.2.exe 鏈接:https://pan.baidu.com/s/1yQTRp-b_ISje5B3UWb7Apw?pw…

深入解析 I/O 模型:原理、區別與 Java 實踐

一、I/O 模型的核心概念 I/O 操作的本質是數據在用戶空間&#xff08;應用程序內存&#xff09;和內核空間&#xff08;操作系統內核內存&#xff09;之間的傳輸。根據數據準備與拷貝階段的處理方式不同&#xff0c;I/O 模型可分為以下五類&#xff1a; 阻塞 I/O&#xff08;…