Git 使用快速入門:從基礎命令到倉庫管理全解析

Git 使用快速入門:從基礎命令到倉庫管理全解析

image-20250701100720750

在軟件開發和團隊協作的世界里,版本控制系統是不可或缺的工具。而 Git,憑借其強大的功能、高效的性能以及分布式的特性,已然成為當下最受歡迎的版本控制系統。無論是個人開發者管理項目代碼,還是大型團隊協同開發復雜系統,Git 都能發揮巨大的作用。本文將帶你深入了解 Git 的基礎概念、常用命令、常見 Git 倉庫的使用,助你快速掌握 Git 這一利器。

一、Git 基礎概念

在深入學習 Git 的使用方法之前,我們需要先了解一些重要的基礎概念,這些概念是理解 Git 工作原理和操作流程的基石。

1.1 版本控制

版本控制是一種記錄一個或若干個文件內容變化,以便將來查閱特定版本修訂情況的系統。在軟件開發過程中,代碼會不斷迭代更新,版本控制可以幫助開發者記錄每一次代碼的修改,方便回溯到任意一個歷史版本,避免因誤操作或新功能引入的問題導致整個項目崩潰。

1.2 工作區、暫存區和版本庫

  • 工作區:就是你在電腦里能看到的項目文件夾,你在這個文件夾里對文件進行編輯、修改等操作。

  • 暫存區:英文叫 “Stage” 或 “Index”,是工作區和版本庫之間的一個臨時區域。當你在工作區修改了文件后,需要先將這些修改添加到暫存區,才能進一步提交到版本庫。

  • 版本庫:也叫倉庫(Repository),是 Git 用來存放項目歷史版本數據的地方。它包含了所有提交的版本信息、分支信息等。在版本庫中,有一個指向當前分支的指針叫 HEAD,它永遠指向當前所在的分支的最新提交。

1.3 提交

提交(Commit)是將暫存區中的修改保存到版本庫的操作。每一次提交都會生成一個唯一的哈希值(類似于身份證號),用來標識這個提交版本。提交時需要添加有意義的提交信息,方便后續查看歷史記錄時快速了解本次提交的目的和內容。

1.4 分支

分支(Branch)是從主分支(通常是 master 或 main 分支)上分離出來的一條獨立的開發線路。在軟件開發中,不同的功能模塊開發、bug 修復等都可以在各自獨立的分支上進行,這樣可以避免影響主分支的穩定性。多個開發者可以同時在不同的分支上工作,完成后再將分支合并回主分支。

二、Git 常用命令詳解

掌握 Git 的常用命令是熟練使用 Git 的關鍵。下面將詳細介紹在日常開發中最常用的 Git 命令及其使用方法和應用場景。

2.1 初始化倉庫

當你開始一個新的項目,或者想要將已有的項目納入 Git 版本控制時,首先需要初始化一個 Git 倉庫。在項目根目錄下打開命令行終端,執行以下命令:

git init

執行該命令后,會在當前目錄下生成一個隱藏的.git 文件夾,這個文件夾就是 Git 的版本庫,它包含了所有與版本控制相關的信息。

2.2 添加文件到暫存區

在工作區對文件進行修改后,需要將文件添加到暫存區,才能進一步提交到版本庫。有兩種常用的添加方式:

  • 添加單個文件:如果只想添加某個特定的文件,可以使用以下命令:
git add <文件名>

例如,要添加一個名為main.py的 Python 文件,命令如下:

git add main.py
  • 添加所有文件:如果想一次性添加工作區中所有修改過的文件,可以使用以下命令:
git add.

這里的.表示當前目錄及其子目錄下的所有文件。

2.3 提交文件到版本庫

將文件添加到暫存區后,就可以將其提交到版本庫了。提交時需要添加提交信息,描述本次提交的內容。執行以下命令:

git commit -m "提交信息"

例如,將剛才添加的main.py文件提交,并添加提交信息 “完成主程序的基本功能”,命令如下:

git commit -m "完成主程序的基本功能"

2.4 查看提交歷史

查看提交歷史可以幫助我們了解項目的開發過程,追溯代碼的修改記錄。常用的查看提交歷史的命令有:

  • 簡單查看:使用git log命令可以查看詳細的提交歷史,包括提交的哈希值、作者、提交日期和提交信息等。
git log
  • 簡潔查看:如果只想查看提交信息,可以使用git log --pretty=oneline命令,它會以一行的形式顯示每個提交。
git log --pretty=oneline
  • 圖形化查看:對于包含多個分支和合并操作的復雜項目,使用git log --graph命令可以以圖形化的方式展示提交歷史,更直觀地了解分支的合并情況。
git log --graph

2.5 撤銷工作區修改

如果在工作區對文件進行了修改,但又想撤銷這些修改,恢復到上一次提交的狀態,可以使用以下命令:

git checkout -- <文件名>

例如,要撤銷對main.py文件的修改,命令如下:

git checkout -- main.py

需要注意的是,這個命令只能撤銷未添加到暫存區的修改。如果文件已經添加到暫存區,需要先使用git reset HEAD <文件名>命令將文件從暫存區撤回,再使用上述命令撤銷工作區修改。

2.6 撤銷暫存區修改

如果不小心將不需要提交的文件添加到了暫存區,可以使用以下命令將其從暫存區撤回:

git reset HEAD <文件名>

例如,將錯誤添加到暫存區的temp.txt文件撤回,命令如下:

git reset HEAD temp.txt

執行該命令后,文件會從暫存區回到工作區,此時可以繼續對文件進行修改或再次添加到暫存區。

2.7 創建和切換分支

在開發過程中,經常需要創建新的分支來進行特定功能的開發。創建分支的命令如下:

git branch <分支名>

例如,創建一個名為feature-login的分支,用于開發登錄功能,命令如下:

git branch feature-login

創建分支后,需要切換到該分支才能在上面進行開發。切換分支的命令如下:

git checkout <分支名>

例如,切換到剛才創建的feature-login分支,命令如下:

git checkout feature-login

也可以使用git switch <分支名>命令來切換分支,效果與git checkout相同。

還可以使用git checkout -b <分支名>命令在創建分支的同時切換到該分支,這是一個組合命令,相當于先執行git branch <分支名>,再執行git checkout <分支名>。

2.8 合并分支

當在分支上完成功能開發或 bug 修復后,需要將分支合并回主分支。假設當前在feature-login分支上完成了登錄功能的開發,要將其合并到main分支上,操作步驟如下:

  1. 切換到主分支:
git checkout main
  1. 合并分支:
git merge <分支名>

例如,將feature-login分支合并到main分支,命令如下:

git merge feature-login

如果在合并過程中出現沖突,Git 會提示沖突的文件和位置,需要手動解決沖突后,再將解決沖突后的文件添加到暫存區并提交,才能完成合并。

2.9 刪除分支

當分支的功能已經合并到主分支,或者分支不再需要時,可以將其刪除。刪除分支的命令如下:

git branch -d <分支名>

例如,刪除剛才創建的feature-login分支,命令如下:

git branch -d feature-login

如果分支還有未合并的修改,Git 會拒絕刪除該分支。此時可以使用git branch -D <分支名>命令強制刪除分支,但要謹慎使用,以免丟失重要的代碼。

2.10 遠程倉庫操作

在實際開發中,通常會將代碼托管在遠程倉庫上,方便團隊成員之間共享代碼和協作開發。常見的遠程倉庫有 GitHub、GitLab、Gitee 等。下面以 GitHub 為例,介紹遠程倉庫的常用操作。

  • 關聯遠程倉庫:首先需要將本地倉庫與遠程倉庫關聯起來。在 GitHub 上創建一個新的倉庫后,在本地倉庫的命令行終端執行以下命令:
git remote add origin <遠程倉庫地址>

例如,遠程倉庫地址為https://github.com/your-username/your-repo.git,則命令如下:

git remote add origin https://github.com/your-username/your-repo.git

這里的origin是遠程倉庫的默認別名,也可以使用其他別名。

  • 推送代碼到遠程倉庫:將本地倉庫的代碼推送到遠程倉庫,使用以下命令:
git push origin <分支名>

例如,將本地main分支的代碼推送到遠程倉庫,命令如下:

git push origin main

如果是第一次推送,可能需要輸入 GitHub 的用戶名和密碼進行驗證,或者配置 SSH 密鑰實現免密登錄。

  • 從遠程倉庫拉取代碼:當團隊其他成員推送了新的代碼到遠程倉庫,或者在其他電腦上克隆了遠程倉庫后,需要將遠程倉庫的最新代碼拉取到本地。使用以下命令:
git pull origin <分支名>

例如,拉取遠程倉庫main分支的最新代碼,命令如下:

git pull origin main

git pull命令相當于先執行git fetch獲取遠程倉庫的最新提交,再執行git merge將獲取到的提交合并到本地分支。

三、常見 Git 倉庫介紹和使用方法

3.1 GitHub

GitHub 是全球最大的代碼托管平臺之一,擁有龐大的開發者社區。它提供了豐富的功能,包括代碼托管、項目管理、協作開發、開源項目分享等。

  • 使用方法
    1. 注冊 GitHub 賬號:訪問GitHub 官網,按照提示注冊一個賬號。
    1. 創建倉庫:登錄賬號后,點擊頁面右上角的 “+” 號,選擇 “New repository”,填寫倉庫名稱、描述等信息,然后點擊 “Create repository” 創建倉庫。
    1. 克隆倉庫:在本地命令行終端執行git clone <倉庫地址>命令,將遠程倉庫克隆到本地。例如,倉庫地址為https://github.com/your-username/your-repo.git,則命令如下:
git clone https://github.com/your-username/your-repo.git
  1. 進行開發和協作:在本地倉庫進行代碼開發,完成后按照前面介紹的遠程倉庫操作命令,將代碼推送到遠程倉庫,或者從遠程倉庫拉取其他成員的代碼。

3.2 GitLab

GitLab 是一個基于 Web 的 DevOps 生命周期工具,提供了完整的版本控制、CI/CD(持續集成 / 持續交付)、問題跟蹤、容器注冊表等功能。它既可以部署在云端,也可以在本地進行私有化部署,適合企業內部使用。

  • 使用方法
    1. 安裝或注冊 GitLab:如果是使用云端的 GitLab 服務,可以直接注冊賬號;如果是私有化部署,需要按照官方文檔的說明在服務器上安裝 GitLab。
    1. 創建倉庫:登錄 GitLab 后,在項目頁面點擊 “New project”,填寫項目名稱、描述、選擇項目可見性等信息,然后點擊 “Create project” 創建倉庫。
    1. 克隆倉庫和開發協作:與 GitHub 類似,使用git clone命令克隆倉庫到本地,在本地進行開發后,使用git push和git pull等命令與遠程倉庫進行交互。

3.3 Gitee

Gitee(碼云)是國內知名的代碼托管平臺,對中文的支持更好,訪問速度更快,適合國內的開發者和企業使用。它提供了與 GitHub 類似的功能,同時還支持國內的一些特色服務,如與微信、釘釘等平臺的集成。

  • 使用方法
    1. 注冊 Gitee 賬號:訪問Gitee 官網,注冊一個賬號。
    1. 創建倉庫:登錄賬號后,點擊頁面右上角的 “+” 號,選擇 “新建倉庫”,填寫倉庫信息,然后點擊 “創建” 按鈕創建倉庫。
    1. 克隆、推送和拉取代碼:操作方式與 GitHub 和 GitLab 相同,使用相應的 Git 命令即可。

四、總結

通過本文的學習,相信你已經對 Git 的基礎概念、常用命令以及常見 Git 倉庫的使用有了較為全面的了解。Git 的功能非常強大,本文介紹的只是最基礎和常用的部分。在實際使用過程中,你還會遇到更多復雜的場景和問題,需要不斷地學習和實踐。隨著對 Git 的深入了解,你會發現它在代碼管理和團隊協作中帶來的巨大便利。希望你能夠熟練掌握 Git,在軟件開發的道路上更加得心應手。如果你在學習過程中有任何疑問或遇到問題,歡迎在評論區留言交流。

上述內容涵蓋了 Git 從基礎到常用操作和倉庫管理的知識。若你對某些命令的使用還想深入了解,或想了解其他 Git 進階內容,可隨時告訴我。

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

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

相關文章

Go語言項目工程化 —— 日志、配置、錯誤處理規范

在Go語言中&#xff0c;項目工程化的日志、配置、錯誤處理規范是保障項目可維護性、可觀測性與健壯性的核心實踐之一。本章將從三個方面進行詳解&#xff1a; 一、日志規范 1. 日志的重要性 ? 問題排查的唯一“現場還原”? 性能瓶頸的定位手段? 安全審計的依據 2. 日志庫…

day58python打卡

知識點回顧&#xff1a; 時序建模的流程時序任務經典單變量數據集ARIMA&#xff08;p&#xff0c;d&#xff0c;q&#xff09;模型實戰SARIMA摘要圖的理解處理不平穩的2種差分 n階差分---處理趨勢季節性差分---處理季節性 建立一個ARIMA模型&#xff0c;通常遵循以下步驟&…

centos9安裝

centos-stream-9-stream-BaseOS-x86_64-iso安裝包下載_開源鏡像站-阿里云 用NAT 默認root用戶不能登錄 vim /etc/ssh/sshd_config PermitRootLogin yes 去掉注釋,改為yes 這樣root用戶可以登錄 因為用的NAT模式 這樣可以通過宿主機的50022端口訪問虛擬機 宿主機 ipconfig…

60天python訓練營打卡day‘47

學習目標&#xff1a; 60天python訓練營打卡 學習內容&#xff1a; DAY 47 注意力熱圖可視化 昨天代碼中注意力熱圖的部分順移至今天 知識點回顧&#xff1a; 熱力圖 學習時間&#xff1a; 2025.06.30 浙大疏錦行

GO字符串處理面試題及參考答案(精選60道題)

如何將一個字符串反轉?實現 Reverse("abc") => "cba" 在Go語言中實現字符串反轉需要考慮字符串的編碼方式。Go語言的字符串是基于UTF-8編碼的,而UTF-8是一種變長編碼,每個Unicode碼點(rune)可能由1到4個字節表示。因此,簡單地按字節反轉會破壞多字…

在線swagger 導出 PDF文檔

1.獲取swagger文檔json 點擊左上角的url&#xff0c;下載json文件 2.apifox轉換JSON到Markdown json文件導入 MD文件導出 3.用Mark Text 導入后轉換成PDF

【Linux基礎知識系列】第四十篇 - 定制彩色終端與 Prompt

在使用Linux終端時&#xff0c;一個清晰、易讀且個性化的命令提示符&#xff08;Prompt&#xff09;可以顯著提升工作效率和用戶體驗。通過定制終端的顏色和提示符&#xff0c;用戶可以更直觀地獲取系統信息&#xff0c;同時也能讓終端界面更具個性化。本文將介紹如何通過PS1變…

Spark從入門到熟悉(篇二)

本文介紹Spark的RDD編程&#xff0c;并進行實戰演練&#xff0c;加強對編程的理解&#xff0c;實現快速入手 知識脈絡 包含如下8部分內容&#xff1a; 創建RDD 常用Action操作 常用Transformation操作 針對PairRDD的常用操作 緩存操作 共享變量 分區操作 編程實戰 創…

ADSP-CM408CSWZ-BF高精度ADI雙核精密控制神器 賦能工業4.0核心系統!

ADSP-CM408CSWZ-BF&#xff08;ADI&#xff09;產品解析與推廣文案 1. 產品概述 ADSP-CM408CSWZ-BF 是 Analog Devices Inc.&#xff08;ADI&#xff09; 推出的一款 混合信號控制處理器&#xff0c;屬于 ADSP-CM40x系列&#xff0c;集成了 雙核ARM Cortex-M4 高精度ADC&…

Unity GPU Timeline性能熱點分析與優化指南

一、GPU Timeline技術背景與性能挑戰 1. GPU Timeline核心架構 層級組件性能影響應用層PlayableGraph指令生成效率驅動層CommandBuffer提交開銷硬件層GPU管線并行利用率 2. 典型性能瓶頸 圖表 代碼 下載 性能問題 過度繪制 資源切換 同步等待 FillRate受限 狀態切換…

CAN轉Modbus TCP網關賦能食品攪拌機智能協同控制

在食品攪拌機的自動化控制系統中&#xff0c;設備通信協議的多樣性給系統集成帶來挑戰。JH-CAN-TCP疆鴻智能CAN主站轉Modbus TCP從站的網關&#xff0c;成為連接西門子PLC與伺服系統的關鍵橋梁。 西門子PLC常采用Modbus TCP協議&#xff0c;用于實現與上位機、人機界面等設備的…

30套精品論文答辯開題報告PPT模版

畢業論文答辯開題報告PPT模版&#xff0c;會議報告&#xff0c;座談交流&#xff0c;工作總結&#xff0c;工作匯報&#xff0c;開題報告PPT模版&#xff0c;開題報告論文答辯PPT模版&#xff0c;扁平論文開題報告PPT模版&#xff0c;畢業論文答辯開題報告PPT模版&#xff0c;極…

IDA系列--插件開發-Python版

IDA系列–插件開發-Python版 1. 概述 本文章詳細介紹了基于Python語言的IDA Pro插件開發技術。IDA Pro作為業界領先的反匯編器和逆向工程平臺,其插件架構允許開發者通過Python腳本擴展核心功能。本文涵蓋開發環境配置、核心API使用、典型開發流程及最佳實踐。 2. 開發環境配…

?? 深度學習模型編譯器實戰:解鎖工業級部署新范式??—— 基于PyTorch-MLIR的全流程優化指南(開源工具鏈集成)??

? ??權威實驗數據??&#xff08;來源&#xff1a;MLIR官方GitHub&#xff09; ResNet-50推理時延&#xff1a; ? PyTorch原生&#xff1a;32ms → MLIR優化后&#xff1a;6.3ms &#xff08;加速比??5.1??&#xff09; 峰值顯存占用下降&#xff1a;??1.8GB → 420…

Kafka日常運維命令總結

一、集群管理 前臺啟動Broker bin/kafka-server-start.sh <path>/server.properties關閉方式&#xff1a;Ctrl C 后臺啟動Broker bin/kafka-server-start.sh -daemon <path>/server.properties關閉Broker bin/kafka-server-stop.sh二、Topic管理 操作命令創建To…

如何訓練一個 Reward Model:RLHF 的核心組件詳解

Reward Model&#xff08;獎勵模型&#xff09;是 RLHF 的核心&#xff0c;決定了模型“覺得人類偏好什么”的依據。本文將系統介紹如何從零開始訓練一個 reward model&#xff0c;包括數據準備、模型結構、損失函數、訓練方法與注意事項。 什么是 Reward Model&#xff1f; …

FrozenBatchNorm2d 詳解

FrozenBatchNorm2d 詳解 基本概念 FrozenBatchNorm2d 是 BatchNorm2d 的一種特殊變體,主要用于在模型訓練或推理過程中固定批量統計量(running mean 和 running variance)以及仿射參數(weight 和 bias)。這種凍結操作在以下場景中特別有用: 模型微調(Fine-tuning):當…

Helix Toolkit 在 WPF 中加載帶貼圖素材的模型

引言 在現代應用程序開發中,將 3D 模型集成到桌面應用中變得越來越普遍。無論是建筑可視化、產品設計還是游戲開發,WPF(Windows Presentation Foundation)結合 Helix Toolkit 提供了一個強大的解決方案來展示和操作 3D 內容。本文將指導你如何使用 Helix Toolkit 加載 .ob…

Http、Ftp、Dns和Dhcp服務器搭建

服務器搭建的要求 ①搭建Web服務器 要求做一個簡單的主頁&#xff08;index.html&#xff09;以便測試 web 服務&#xff0c;服務器&#xff08;Linux 平臺&#xff09;ip 地址配置&#xff1a;10.28.110.251,255.255.255.0&#xff0c;域名為&#xff1a;www.xxx.cie.net。 …

系統架構設計師論文分享-論單元測試方法及其應用

我的軟考歷程 摘要 2023年2月&#xff0c;我所在的公司做了開發紗線MES系統的決定&#xff0c;該系統為國內紗線工廠提供SAAS服務&#xff0c;旨在提高紗線工廠的智能化和數字化水平。我在該項目中被任命為系統架構設計師&#xff0c;全面掌管該項目的架構設計工作。本文將結…