作)
1. 項目概述為什么你需要掌握Git與Gitee如果你剛開始接觸代碼協(xié)作或者只是想把本地寫好的項目找個地方安全地存起來那么“Git”和“Gitee”這兩個詞一定繞不開。很多人覺得它們聽起來很“極客”是程序員專屬其實不然。簡單來說Git是一個幫你管理文件所有修改歷史的工具而Gitee碼云是一個存放這些文件歷史的“網(wǎng)絡(luò)硬盤”。想象一下你寫一份重要的報告每次修改都另存為一個新文件很快桌面就堆滿了“報告V1”、“報告V2最終版”、“報告V2真的最終版”。Git就是那個幫你自動記錄每一次修改內(nèi)容、并能隨時回到任何一個“最終版”的智能管家。Gitee則提供了一個云端保險柜讓你可以和同事同時編輯這份報告且每個人的修改都能清晰合并再也不用通過微信來回發(fā)送壓縮包了。這個教程的目標非常直接讓你從零開始完成Git的安裝配置學會將Gitee上的項目下載到本地修改文件后再將更新同步回云端。這涵蓋了個人開發(fā)與團隊協(xié)作中最核心的“拉取-修改-提交-推送”工作流。無論你是學生需要管理課程作業(yè)還是職場新人需要參與團隊項目這套流程都是必備的基礎(chǔ)技能。整個過程不涉及復雜的分支管理只聚焦于最常用、最實用的幾個命令和操作確保你學完就能立刻用上。2. 環(huán)境準備與核心概念掃盲在動手之前我們需要把“戰(zhàn)場”打掃干凈并理解幾個關(guān)鍵名詞。這能讓你后續(xù)的每一步操作都心中有數(shù)而不是機械地復制命令。2.1 Git的安裝與基礎(chǔ)配置Git本身是一個命令行工具我們需要先把它安裝到你的電腦上。Windows用戶前往 Git 官網(wǎng)下載安裝程序。安裝過程中有幾個選項需要注意選擇默認編輯器如果你不熟悉Vim強烈建議選擇你常用的編輯器比如VSCode或Notepad避免后續(xù)提交信息時陷入Vim的編輯模式不知所措。調(diào)整PATH環(huán)境選擇“Git from the command line and also from 3rd-party software”。這會將Git添加到系統(tǒng)環(huán)境變量讓你能在任意命令行窗口如CMD或PowerShell中直接使用git命令。配置行尾轉(zhuǎn)換選擇“Checkout Windows-style, commit Unix-style line endings”。這能智能處理Windows和Linux/macOS系統(tǒng)間換行符的差異避免協(xié)作時出現(xiàn)大量無意義的文件更改提示。macOS用戶最簡單的方法是安裝Xcode Command Line Tools。打開終端Terminal輸入xcode-select --install并按照提示操作即可。也可以通過Homebrew安裝brew install git。Linux用戶通過包管理器安裝例如Ubuntu/Debian系sudo apt-get install git。安裝完成后打開終端Windows用戶可使用Git Bash或系統(tǒng)自帶的PowerShell進行全局身份配置這是你提交代碼時的“簽名”git config --global user.name 你的用戶名 git config --global user.email 你的郵箱這里的郵箱最好與你在Gitee上注冊的郵箱一致這樣你的提交記錄才能正確關(guān)聯(lián)到你的Gitee賬戶。2.2 理解核心概念倉庫、提交、遠程倉庫Repository簡稱Repo可以理解為一個受Git管理的項目文件夾。里面不僅包含你的項目文件還有一個隱藏的.git目錄用來記錄所有的歷史版本信息。提交Commit這是Git中最核心的操作。它不是一個簡單的保存動作而是對你當前工作狀態(tài)的一次快照。每次提交都需要附上一條說明信息Commit Message描述這次修改做了什么。好的提交信息像日記一樣能讓你在未來快速理解每次更改的意圖。工作區(qū)、暫存區(qū)、倉庫這是Git的三個重要區(qū)域。工作區(qū)就是你電腦上直接能看到、編輯的文件。暫存區(qū)Stage/Index一個中間區(qū)域。你可以選擇將工作區(qū)的哪些修改放入暫存區(qū)準備打包成一次提交。倉庫本地存放所有已提交的快照。只有從暫存區(qū)提交過來的內(nèi)容才會永久存入歷史。遠程倉庫Remote Repository就是托管在Gitee、GitHub等平臺上的云端倉庫。它的作用是同步和備份。你從遠程倉庫“拉取”Pull最新代碼到本地在本地修改并提交后再“推送”Push到遠程倉庫完成一次完整的協(xié)作循環(huán)。2.3 Gitee賬號注冊與倉庫創(chuàng)建訪問Gitee官網(wǎng)使用郵箱或手機號注冊一個賬號。登錄后點擊頁面右上角的“”號選擇“新建倉庫”。創(chuàng)建倉庫時有幾個關(guān)鍵選項倉庫名稱盡量用英文清晰易懂例如my-first-project。倉庫介紹簡單描述項目是做什么的。是否開源選擇“公開”意味著所有人都能看到你的代碼選擇“私有”則只有你和你邀請的成員可見。對于學習項目選擇“公開”即可。初始化倉庫這里非常關(guān)鍵。對于純新手我強烈建議不要勾選“使用Readme文件初始化這個倉庫”。因為一個空的遠程倉庫會給你最清晰的指令告訴你如何將本地已有的項目推送到云端或者如何從零開始克隆。我們先從最基礎(chǔ)的手動操作學起。.gitignore可以先不選后續(xù)我們會手動添加。開源許可證如果是學習項目可以暫時忽略。點擊“創(chuàng)建”后一個空的遠程倉庫就準備好了。頁面會顯示一些命令行指引我們稍后會用到。3. 核心操作流程從下載到更改上傳現(xiàn)在我們進入實戰(zhàn)環(huán)節(jié)。整個過程可以概括為克隆 - 修改 - 暫存 - 提交 - 推送。3.1 第一步將遠程倉庫克隆到本地Clone“克隆”是整個流程的起點它的作用是在你的本地電腦上創(chuàng)建一個與遠程倉庫一模一樣的副本并且自動建立好關(guān)聯(lián)。假設(shè)你在Gitee上創(chuàng)建了一個名為my-first-project的空倉庫其倉庫地址HTTPS格式類似https://gitee.com/你的用戶名/my-first-project.git。在你的電腦上找一個合適的位置比如D:\Projects或~/Documents/Code。打開終端使用cd命令進入這個目錄。執(zhí)行克隆命令git clone https://gitee.com/你的用戶名/my-first-project.git命令執(zhí)行后當前目錄下會生成一個與倉庫同名的文件夾my-first-project。進入這個文件夾你就進入了本地倉庫的工作區(qū)。注意首次使用HTTPS方式克隆時可能會彈出Gitee的登錄窗口要求驗證身份。你也可以配置SSH密鑰來實現(xiàn)免密操作這更安全便捷我們會在后面詳細說明。3.2 第二步在本地進行文件更改現(xiàn)在你可以在本地倉庫文件夾里做任何事了新建文件、修改文件、刪除文件。我們模擬一個最簡單的操作在my-first-project文件夾內(nèi)新建一個文本文檔命名為hello.txt。用編輯器打開hello.txt輸入一行文字“Hello, Git and Gitee!”然后保存。此時你的修改僅存在于工作區(qū)。Git已經(jīng)察覺到了變化但還沒有正式記錄。3.3 第三步暫存與提交更改接下來我們需要將工作區(qū)的改動正式記錄到本地倉庫的歷史中。這個過程分兩步檢查狀態(tài)在動手前先用git status命令查看當前倉庫的狀態(tài)。它會清晰地告訴你哪些文件被修改了、哪些是新文件、哪些文件已處于暫存區(qū)。這是一個非常實用的命令建議在每次操作前都習慣性使用一下。git status你會看到hello.txt被標記為“Untracked files”未跟蹤的文件。暫存更改使用git add命令將文件的改動添加到暫存區(qū)。你可以添加單個文件也可以添加所有改動。添加單個文件git add hello.txt添加所有改動git add .注意后面有一個點 再次運行g(shù)it status你會看到hello.txt變成了綠色顯示“Changes to be committed”意味著它已在暫存區(qū)等待被提交。提交更改使用git commit命令將暫存區(qū)的內(nèi)容打包成一個永久的快照保存到本地倉庫。git commit -m “添加了hello.txt問候文件”-m參數(shù)后面跟的是本次提交的說明信息。務(wù)必養(yǎng)成撰寫清晰、簡潔提交信息的習慣例如“修復了登錄按鈕點擊無效的bug”、“新增了用戶個人資料頁面的頭像上傳功能”。模糊的“更新”或“修改”會為日后回溯歷史帶來巨大困難。至此你的更改已經(jīng)安全地保存在了本地Git倉庫的歷史記錄中。你可以隨時回退到這個版本。3.4 第四步將本地提交推送到遠程倉庫Push本地提交只存在于你的電腦上。為了同步到Gitee讓其他人能看到或備份需要執(zhí)行推送操作。git push origin mainpush推送命令。origin這是遠程倉庫的默認別名指向你最初克隆的那個Gitee倉庫地址。main這是主分支的名稱早期默認是master現(xiàn)在主流已改為main。它代表你要推送到的遠程分支。執(zhí)行后Git會要求你輸入Gitee的用戶名和密碼如果使用HTTPS方式。成功后刷新你的Gitee倉庫頁面就能看到hello.txt文件已經(jīng)出現(xiàn)在倉庫文件列表中了。實操心得git push是單向的只將你的本地提交“上傳”到遠程。如果在此期間其他協(xié)作者已經(jīng)向遠程倉庫推送了新的提交那么你的這次推送可能會被拒絕。這時你需要先執(zhí)行g(shù)it pull拉取遠程的更新在本地合并后再推送。這是團隊協(xié)作中最常見的場景之一。4. 進階技巧與高效配置掌握了基本流程后下面這些技巧能讓你用得更順手、更專業(yè)。4.1 配置SSH密鑰實現(xiàn)免密操作每次推送都要輸密碼很麻煩使用SSH密鑰對可以一勞永逸。其原理是在你的電腦上生成一把“私鑰”自己保管好將對應(yīng)的“公鑰”交給Gitee。之后每次連接雙方用密鑰自動驗證身份。生成SSH密鑰對如果已有~/.ssh/id_rsa.pub文件可跳過ssh-keygen -t rsa -C “你的郵箱”連續(xù)按回車接受默認保存路徑和不設(shè)置密碼為方便起見學習環(huán)境可不設(shè)密碼。查看并復制公鑰cat ~/.ssh/id_rsa.pub復制終端輸出的以ssh-rsa開頭的一長串內(nèi)容。在Gitee中添加公鑰登錄Gitee點擊頭像 - 設(shè)置 - SSH公鑰。標題欄可以隨意填寫如“My Laptop”。將復制的公鑰內(nèi)容粘貼到“公鑰”欄中點擊“確定”。測試連接ssh -T gitgitee.com看到“Hi XXX! Youve successfully authenticated...”的歡迎信息即表示成功。將遠程倉庫地址改為SSH格式 對于之前用HTTPS克隆的倉庫可以修改其遠程地址git remote set-url origin gitgitee.com:你的用戶名/倉庫名.git之后再進行g(shù)it push或git pull就不再需要輸入密碼了。4.2 使用.gitignore文件排除無用文件項目中總有一些文件不需要納入版本管理比如編譯產(chǎn)生的二進制文件、IDE的配置文件、本地環(huán)境變量文件、系統(tǒng)生成的縮略圖等。.gitignore文件就是用來定義這些忽略規(guī)則的。在倉庫根目錄下創(chuàng)建一個名為.gitignore的文件注意開頭有個點。在文件中按行添加需要忽略的文件或文件夾模式。例如# 忽略所有 .log 文件 *.log # 忽略 node_modules 整個目錄 node_modules/ # 忽略名為 .env 的本地環(huán)境配置文件 .env # 忽略操作系統(tǒng)生成的縮略圖文件 .DS_Store將這個.gitignore文件本身通過git add和git commit提交到倉庫。這樣所有協(xié)作者都會共享同一套忽略規(guī)則。重要提示.gitignore只能忽略那些尚未被Git跟蹤的文件。如果一個文件已經(jīng)被提交過即已被跟蹤那么即使后來將其加入.gitignoreGit依然會繼續(xù)跟蹤它的變化。此時需要先用git rm --cached file命令將其從Git索引中移除但不刪除本地文件再提交。4.3 使用圖形化工具輔助如VSCode如果你不習慣命令行使用集成了Git功能的編輯器會直觀很多。以VSCode為例安裝VSCode后用VSCode打開你的項目文件夾。左側(cè)活動欄有一個源代碼管理圖標分支形狀。點擊它所有變更的文件都會列出來。在每個文件后面你可以看到“”號對應(yīng)git add和“-”號放棄更改。在頂部的輸入框填寫提交信息然后點擊上方的勾號?即可完成提交。點擊“...”更多菜單可以選擇“推送到”或“拉取自”遠程倉庫。圖形化工具將Git命令轉(zhuǎn)化為了可視化的按鈕和菜單非常適合初學者理解工作流。但了解背后的命令行操作能讓你在遇到復雜情況或使用無圖形界面的服務(wù)器時更加從容。5. 常見問題與故障排查實錄在實際操作中你幾乎一定會遇到下面這些問題。別擔心它們都有標準的解決思路。5.1 提交信息寫錯了怎么辦剛執(zhí)行完git commit -m “錯別字”發(fā)現(xiàn)信息寫錯了。這時可以使用--amend參數(shù)修改最近一次提交的信息git commit --amend -m “新的提交信息”這個操作會替換上一次的提交信息而不會產(chǎn)生一個新的提交記錄。注意如果該提交已經(jīng)推送到了遠程倉庫強制修改后再推送 (git push -f) 會改寫遠程歷史在團隊協(xié)作中需極其謹慎通常不建議這樣做。5.2 文件改亂了想一鍵還原怎么辦你在工作區(qū)對hello.txt做了很多實驗性修改但現(xiàn)在想徹底放棄這些修改還原到上次提交時的狀態(tài)git checkout -- hello.txt這個命令非?!拔kU”且不可逆它會用本地倉庫中保存的版本直接覆蓋工作區(qū)的文件所有未提交的改動都將永久丟失。執(zhí)行前請務(wù)必確認。5.3 不小心把不想提交的文件git add了怎么辦文件已經(jīng)被添加到了暫存區(qū)但還沒提交。你可以將其從暫存區(qū)撤出但保留工作區(qū)的修改git reset HEAD hello.txt執(zhí)行后hello.txt的更改狀態(tài)會從“Changes to be committed”變回“Changes not staged for commit”或“Untracked”。然后你可以決定是修改.gitignore忽略它還是繼續(xù)編輯。5.4 執(zhí)行g(shù)it push時被拒絕提示“非快進式推送”這是團隊協(xié)作中的典型問題。意味著在你上次拉取代碼后遠程倉庫已經(jīng)有了新的提交可能是其他同事推送的。你的本地歷史與遠程歷史出現(xiàn)了分叉。標準解決流程先拉取執(zhí)行g(shù)it pull origin main。這會將遠程的最新更改拉取到本地并嘗試自動合并。解決沖突如果自動合并失敗Git會提示“CONFLICT”并在沖突文件中用標記出沖突內(nèi)容。你需要手動編輯這些文件解決沖突即決定保留哪部分代碼或如何整合。重新提交解決所有沖突后使用git add標記沖突已解決然后執(zhí)行g(shù)it commit。Git會為你生成一個合并提交。再次推送完成合并后執(zhí)行g(shù)it push origin main。核心原則在推送之前永遠先拉取一次確保你的本地分支是基于遠程的最新版本進行修改的。5.5 如何下載克隆Gitee上別人的項目這其實就是“克隆”操作。在Gitee上找到你感興趣的項目點擊綠色的“克隆/下載”按鈕復制提供的HTTPS或SSH地址然后在你的本地終端執(zhí)行g(shù)it clone 地址即可。這樣你就獲得了一份完整的、包含全部歷史的項目副本可以自由學習、運行甚至在其基礎(chǔ)上進行修改如需貢獻通常使用Fork Pull Request流程。整個流程走下來你會發(fā)現(xiàn)版本控制的核心思想并不復雜記錄快照、管理變更、同步協(xié)作。Git和Gitee的強大之處在于它們用一套相對簡單的機制優(yōu)雅地解決了軟件開發(fā)中代碼歷史管理這一復雜問題。剛開始可能會覺得命令繁多但只要你牢牢掌握clone,status,add,commit,pull,push這六個核心命令就已經(jīng)能應(yīng)對90%的日常場景了。剩下的高級功能可以在需要時再逐步探索。最重要的是現(xiàn)在就開始動手創(chuàng)建一個倉庫完成一次從下載到更改再到上傳的完整循環(huán)實踐是掌握工具的唯一捷徑。