小白入門:GitHub 遠程倉庫使用全攻略

一、Git 核心概念

1. 三個工作區域

  • 工作區(Working Directory):實際編輯文件的地方。
  • 暫存區(Staging Area):準備提交的文件集合(使用git add操作)。
  • 本地倉庫(Local Repository):已提交的內容(通過git commit提交)。
  • 遠程倉庫(Remote Repository):如 GitHub 等托管平臺上的倉庫。

2. 分支

在 Git 版本控制系統中,分支(Branch) 是指從主分支(如main或master)分離出來的獨立開發線路,每個分支都有獨立的提交歷史,允許開發者并行開展不同的開發任務。例如,當開發新功能、修復特定 Bug 或進行實驗性開發時,都可以創建獨立分支。

分支的核心優勢在于代碼隔離與并行開發

  • 功能隔離:以main(或master)作為默認分支,新功能開發可在獨立分支上進行,避免直接修改主線代碼。例如,開發電商網站的「直播帶貨」功能時,可創建feature/live-selling分支,確保核心購物流程(main分支)不受影響。
  • 版本管理:不同分支可對應不同版本迭代,便于團隊分工協作。如dev分支用于日常開發,release分支用于預發布測試,hotfix分支用于緊急修復線上問題。
  • 風險可控:若分支開發中出現錯誤,可隨時丟棄或回滾,不會破壞主分支穩定性,降低對整個項目的影響。
二、GitHub 遠程倉庫搭建步驟
  1. 注冊 GitHub 賬號訪問 GitHub 官網 注冊賬號。
  1. 創建新倉庫
    • 點擊右上角 New repository → 填寫倉庫名(如 LM_Steer)→ 創建。
  1. 本地環境配置
    • 安裝 Git:下載地址
    • 配置用戶名和郵箱:

git config --global user.name "Your Name"

git config --global user.email "your_email@example.com"

三、Git 基本操作
  1. 本地倉庫初始化

git init # 在項目目錄初始化Git倉庫

  1. 提交文件到本地倉庫

git add . # 添加所有文件到暫存區

git commit -m "初始提交" # 提交到本地倉庫

  1. 關聯遠程倉庫

git remote add origin git@github.com:用戶名/倉庫名.git # 添加遠程倉庫

  1. 推送至遠程倉庫

git push -u origin main # 首次推送需指定上游分支

  1. 拉取遠程更新

git pull origin main # 拉取并合并遠程更新

  1. 分支 track(追蹤分支)介紹

在 GitHub 協作開發中,追蹤分支是連接本地分支與遠程分支的橋梁。它具有兩大核心優勢:

  1. 自動同步更新:避免手動頻繁拉取代碼,執行git pull或git push命令時,本地分支會自動與追蹤的遠程分支交互。
  1. 明確關聯關系:清晰展示本地與遠程分支的對應關系,便于團隊快速掌握代碼同步狀態。
創建方式

追蹤分支的創建分為兩種場景:

  • 新建分支時直接追蹤:使用命令 git checkout -b feature/xxx origin/feature/xxx,在創建本地feature/xxx分支的同時,直接設置為追蹤遠程origin/feature/xxx分支。
  • 已有分支設置追蹤:通過命令 git branch --set-upstream-to=origin/xxx local_xxx,將現有本地分支local_xxx關聯至遠程origin/xxx分支。
  1. 如何查看并刪除遠程關聯的倉庫
    • 查看遠程倉庫:在本地倉庫的命令行中,輸入 git remote -v 命令,即可列出所有已關聯的遠程倉庫及其對應的 URL 地址。例如,輸出可能類似 origin https://github.com/yourusername/yourrepository.git (fetch) 和 origin https://github.com/yourusername/yourrepository.git (push),其中 origin 是默認的遠程倉庫別名。
    • 刪除遠程倉庫:若要刪除某個遠程倉庫關聯,使用 git remote remove <遠程倉庫別名> 命令,如 git remote remove origin 即可刪除別名為 origin 的遠程倉庫關聯。也可以使用 git remote rm <遠程倉庫別名> 達到同樣效果 。
四、典型問題與解決方案
  1. 問題 1:認證失敗(Authentication failed)
    • 原因:用戶名 / 密碼錯誤,或 GitHub 已禁用密碼認證。
    • 解決方案
      • 生成 SSH 密鑰:打開終端(Windows 用戶可使用 Git Bash),輸入ssh-keygen -t ed25519 -C "your_email@example.com",其中郵箱地址替換為你的 GitHub 注冊郵箱,按三次回車鍵完成密鑰生成。密鑰文件默認存儲在用戶主目錄的.ssh文件夾下。注意添加環境變量,否則可能無法使用ssh-keygen
      • 添加公鑰到 GitHub:找到生成的公鑰文件(后綴為.pub),使用文本編輯器打開,復制全部內容。登錄 GitHub,進入Settings -> SSH and GPG keys,點擊New SSH key,粘貼公鑰內容并添加。
      • 測試 SSH 連接:在終端輸入ssh -T git@github.com,首次連接會提示確認,輸入yes。若出現Hi [你的用戶名]! You've successfully authenticated, but GitHub does not provide shell access.,則表示 SSH 密鑰配置成功,后續可通過 SSH 協議安全高效地操作遠程倉庫 。

ssh-keygen -t ed25519 -C "your_email@example.com" # 生成密鑰

# 將公鑰(~/.ssh/id_ed25519.pub)添加到GitHub

      • 使用個人訪問令牌(PAT):GitHub Settings → Developer settings → Personal access tokens → 生成令牌,推送時用令牌替代密碼。
  1. 問題 2:無法使用 ssh-keygen 命令
    • 原因:Windows 未安裝 OpenSSH 客戶端。
    • 解決方案

# 以管理員身份運行PowerShell

Add-WindowsCapability -Online -Name OpenSSH.Client~0.0.1.0

或安裝 Git for Windows。

  1. 問題 3:推送被拒絕(non-fast-forward)
    • 原因:遠程分支有新提交,本地歷史落后。
    • 解決方案

git pull origin 分支名 # 先拉取合并

# 若有沖突,解決后再推送

  1. 問題 4:合并無關歷史(refusing to merge unrelated histories)
    • 原因:本地與遠程倉庫無共同提交歷史。
    • 解決方案

git pull origin 分支名 --allow-unrelated-histories # 強制合并

  1. 問題 5:修改 .gitignore 不生效
    • 原因:已跟蹤的文件不受新規則影響。
    • 解決方案

git rm -r --cached . # 清除緩存

git add . # 重新添加

git commit -m "更新.gitignore

  1. 問題6:使用push命令時,它會推送本地倉庫中所有未推送的commit。若不想將所有修改一次性推送,避免影響主分支穩定性,建議新建一個分支進行操作。具體可通過git branch new_branch_name創建新分支,再使用git checkout new_branch_name切換到新分支,在該分支上進行開發與提交,最后按需將分支合并到主分支。
五、分支管理
  1. 查看分支

git branch # 查看本地分支

git branch -r # 查看遠程分支

git branch -a # 查看所有分支

  1. 創建與切換分支

git checkout -b 新分支名 # 創建并切換到新分支

  1. 合并分支

git checkout main # 切換到目標分支

git merge 源分支名 # 合并源分支到當前分支

六、最佳實踐
  1. 保持 main 分支穩定:僅合并經過測試的代碼。
  1. 使用分支開發新功能:避免影響主線。
  1. 定期同步遠程分支

git fetch origin # 更新遠程分支引用

  1. 通過 Pull Request 合并代碼:便于代碼審查。
七、常見命令速查表

操作

命令

初始化倉庫

git init

添加文件到暫存區

git add <文件>

提交到本地倉庫

git commit -m "描述"

查看狀態

git status

查看提交歷史

git log

拉取遠程更新

git pull origin 分支名

推送至遠程

git push origin 分支名

創建并切換分支

git checkout -b 分支名

切換分支

git checkout 分支名

合并分支

git merge 分支名

刪除分支

git branch -d 分支名

通過以上步驟,你可以完成 GitHub 遠程倉庫的搭建與基本操作,解決常見問題,并建立規范的開發流程。

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

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

相關文章

[創業之路-370]:企業戰略管理案例分析-10-戰略制定-差距分析的案例之小米

戰略制定-差距分析的案例之小米 在戰略制定過程中&#xff0c;小米通過差距分析明確自身與市場機會之間的差距&#xff0c;并制定針對性戰略&#xff0c;實現快速發展。以下以小米在智能手機市場的機會差距分析為例&#xff0c;說明其戰略制定過程。 一、市場機會識別與差距分…

Index-AniSora模型論文速讀:基于人工反饋的動漫視頻生成

Aligning Anime Video Generation with Human Feedback 一、引言 論文開頭指出&#xff0c;盡管視頻生成模型不斷涌現&#xff0c;但動漫視頻生成面臨動漫數據稀缺和運動模式異常的挑戰&#xff0c;導致生成視頻存在運動失真和閃爍偽影等問題&#xff0c;難以滿足人類偏好。現…

第 4 章:網絡與總線——CAN / Ethernet / USB-OTG

本章目標: 深入理解三種關鍵通信總線(CAN、Ethernet、USB-OTG)的協議架構、硬件接口與軟件驅動 掌握 STM32(或同類 MCU)中各總線的寄存器配置、中斷/DMA 驅動框架 通過實戰案例,實現基于 CAN 總線的節點通信、基于 Ethernet 的 TCP/IP 通信,以及基于 USB-OTG 的虛擬串口…

數據結構-DAY05

一、棧的概念 1.棧是限定僅在表尾進行插入和刪除操作的線性表。先進后出、后進先出 棧頂:允許操作的一端 棧底:不允許操作的一端入棧&#xff0c;出棧。 棧分為&#xff1a;順序棧 鏈式棧 2.棧結構是在堆區創建的 3.優先級就是通過棧來解決的 先進后出…

leetcode 153. Find Minimum in Rotated Sorted Array

題目描述 分析 可以發現一個規律&#xff1a; 假如整個數組最后一個元素是x。 最小值左側&#xff08;不含最小值自己&#xff09;的元素全部大于x。 最小值右側&#xff08;包含最小值自己&#xff0c;不包含x&#xff09;的元素全部小于x。 如果整個數組是有序的&#x…

如何在 AOSP 中判斷一個源文件屬于哪個模塊(以 CameraService 為例)

如何在 AOSP 中判斷一個源文件屬于哪個模塊&#xff08;以 CameraService 為例&#xff09; 在 AOSP 開發中&#xff0c;經常需要修改底層 C 代碼&#xff08;如 CameraService.cpp&#xff09;&#xff0c;但很多人會遇到一個問題&#xff1a; 我修改了某個 .cpp 文件&#x…

云原生主要架構模式

云原生(Cloud Native)是一種利用云計算的優勢來構建和運行可擴展、彈性和高效應用程序的方法。它不僅僅是技術的集合,更是一種架構和設計理念。本文將圍繞你提出的幾部分,深入探討云原生主要的架構模式,幫助你理解如何利用這些模式構建現代化的應用。 1. 服務化架構模式(…

深入理解MySQL結構與執行流程

標題&#xff1a;深入理解MySQL結構與執行流程 MySQL以其開源、靈活性和強大的功能成為了最受歡迎的關系型數據庫管理系統之一。無論是初創公司還是大型企業&#xff0c;都廣泛使用MySQL來存儲和管理數據。為了幫助大家更好地理解和優化MySQL的性能&#xff0c;本文將詳細講解…

Python web 開發 Flask HTTP 服務

Flask 是一個輕量級的 Web 應用框架&#xff0c;它基于 Python 編寫&#xff0c;特別適合構建簡單的 Web 應用和 RESTful API。Flask 的設計理念是提供盡可能少的約定和配置&#xff0c;從而讓開發者能夠靈活地構建自己的 Web 應用。 https://andi.cn/page/622189.html

BMVC2023 | 多樣化高層特征以提升對抗遷移性

Diversifying the High-level Features for better Adversarial Transferability 摘要-Abstract引言-Introduction相關工作-Related Work方法-Methodology實驗-Experiments結論-Conclusion 論文鏈接 GitHub鏈接 本文 “Diversifying the High-level Features for better Adve…

虛幻引擎5-Unreal Engine筆記之攝像頭camera

虛幻引擎5-Unreal Engine筆記之攝像頭camera code review! 目錄 第一部分&#xff1a;攝像頭的基礎概念 1.1 UE5 中攝像頭的定義與作用1.2 UE5 中攝像頭的類型與分類 第二部分&#xff1a;攝像頭的代碼結構與分類 2.1 攝像頭是類還是組件&#xff1f;2.2 組件的本質&#xff…

【大數據】MapReduce 編程-- PageRank--網頁排名算法,用于衡量網頁“重要性”-排序網頁

PageRank 是 Google 創始人拉里佩奇&#xff08;Larry Page&#xff09;和謝爾蓋布林&#xff08;Sergey Brin&#xff09;在 1998 年提出的一種網頁排名算法&#xff0c;用于衡量網頁“重要性”的一種方式。它是搜索引擎中用于排序網頁的一種基礎算法 一個網頁越是被其他重要…

React Flow 數據持久化:Django 后端存儲與加載的最佳實踐(含詳細代碼解析)

在構建 React Flow 應用時&#xff0c;前端呈現的節點與連線構成的可視化流程只是冰山一角&#xff0c;其背后的數據持久化與靈活調取才是確保應用穩定運行、支持用戶數據回溯與協作的關鍵。因此&#xff0c;后端存儲與加載 React Flow 信息的環節&#xff0c;就如同整個應用的…

深度學習中的歸一化:提升模型性能的關鍵因素

&#x1f4cc; 友情提示&#xff1a; 本文內容由銀河易創AI&#xff08;https://ai.eaigx.com&#xff09;創作平臺的gpt-4-turbo模型輔助完成&#xff0c;旨在提供技術參考與靈感啟發。文中觀點或代碼示例需結合實際情況驗證&#xff0c;建議讀者通過官方文檔或實踐進一步確認…

Pandas:Series和DataFrame的概念、常用屬性和方法

本文目錄&#xff1a; 一、Series和Dataframe的概念二、創建Series對象三、創建Dataframe對象&#xff08;一&#xff09;Series1.Series的常用屬性總結如下&#xff1a;2.Series的常用方法總結如下&#xff1a; &#xff08;二&#xff09;Dataframe1.Dataframe的常用屬性2.Da…

數據中心Overlay解決方案

文檔圍繞數據中心 Overlay 解決方案展開,指出數據中心向大集中、虛擬化、云業務演進,傳統架構存在網絡規劃復雜、彈性不足、業務擴展受限等問題。Overlay 網絡在物理網絡上構建虛擬網絡,實現名址分離、網絡與物理解耦,支持業務靈活部署。方案采用VXLAN 技術(如 SDN 控制模…

SpringBoot 項目實現操作日志的記錄(使用 AOP 注解模式)

本文是博主在做關于如何記錄用戶操作日志時做的記錄&#xff0c;常見的項目中難免存在一些需要記錄重要日志的部分&#xff0c;例如權限和角色設定&#xff0c;重要數據的操作等部分。 博主使用 Spring 中的 AOP 功能&#xff0c;結合注解的方式&#xff0c;對用戶操作過的一些…

以太聯 - Intellinet 閃耀臺北 SecuTech 國際安全科技應用博覽會

2025 年 5 月 7 日至 9 日&#xff0c;臺北 SecuTech 國際安全科技應用博覽會現場熱鬧非凡&#xff0c;以太聯 - Intellinet 攜旗下前沿產品與解決方案精彩亮相&#xff0c;成為展會上一道亮麗的風景線&#xff0c;吸引了眾多業內人士的目光&#xff0c;收獲了廣泛關注與高度認…

【華為鴻蒙電腦】首款鴻蒙電腦發布:MateBook Fold 非凡大師 MateBook Pro,擎云星河計劃啟動

文章目錄 前言一、HUAWEI MateBook Fold 非凡大師&#xff08;一&#xff09;非凡設計&#xff08;二&#xff09;非凡顯示&#xff08;三&#xff09;非凡科技&#xff08;四&#xff09;非凡系統&#xff08;五&#xff09;非凡體驗 二、HUAWEI MateBook Pro三、預熱&#xf…

OSA快速上手

我第一次接觸OSA&#xff0c;第一感覺就是龐雜&#xff0c;相關的文檔和資料基本都是英文&#xff0c;運行下示例場景&#xff0c;效果和效率確實很香。本文僅針對初次接觸OSA、望而卻步的朋友們進行快速運用的引導。 首先&#xff0c;找個安裝包&#xff0c;導入項目后&#…