從零開始,學會上傳,更新,維護github倉庫

以下是一份從頭到尾、覆蓋安裝、配置、創建倉庫、上傳項目到 GitHub 的完整教程。全程使用通用示例,不包含任何具體的倉庫鏈接,僅供參考。


一、準備工作

1. 注冊 GitHub 賬號

  1. 打開瀏覽器,訪問 GitHub 官網(輸入 “GitHub” 即可找到)。

  2. 點擊“Sign up”或“注冊”按鈕,按提示輸入郵箱、用戶名、密碼,并完成郵箱驗證。

  3. 登陸后,進入個人主頁,即可進行后續操作。


二、安裝并配置 Git

1. 在不同操作系統上安裝 Git

  • Windows:

    1. 打開瀏覽器,搜索“Git Windows安裝”并找到官網的下載頁面。

    2. 下載最新版本的安裝包(通常是以 .exe 結尾的文件),雙擊運行后一路“Next”完成安裝。

    3. 安裝過程中保持默認設置即可(除非你有特殊需求)。

  • macOS:

    1. 可以通過包管理器安裝(推薦 Homebrew)。在終端中執行:

      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
      brew install git
      

      如果不想使用 Homebrew,也可以直接下載 macOS 安裝包,按照提示安裝。

  • Linux(以 Ubuntu 為例):
    打開終端,執行:

    sudo apt update
    sudo apt install git -y
    

安裝完成后,在任意終端(Windows 下可打開 Git Bash)里輸入:

git --version

如果輸出類似 git version 2.x.x,說明安裝成功。

2. 全局配置 Git 用戶信息

安裝完成后,需要告訴 Git 是誰在提交代碼。打開終端,依次執行:

git config --global user.name "你的用戶名"
git config --global user.email "你的郵箱@example.com"
  • user.name:填寫你在 GitHub 上注冊的用戶名或昵稱。

  • user.email:填寫與你 GitHub 帳號綁定的郵箱地址。

配置完畢后,可以用下面命令檢查:

git config --global --list

會看到類似:

user.name=你的用戶名
user.email=你的郵箱@example.com

三、為安全驗證配置 SSH(可選,但推薦)

使用 SSH 方式推送/拉取代碼,可以避免每次輸入用戶名和密碼(Token)。下面介紹 SSH 公鑰的生成與添加。

1. 生成 SSH 密鑰對

  1. 打開終端(或 Git Bash),執行:

    ssh-keygen -t ed25519 -C "你的郵箱@example.com"
    
    • 按提示一路回車即可,默認會在用戶主目錄下生成 .ssh/id_ed25519(私鑰)和 .ssh/id_ed25519.pub(公鑰)兩個文件。

    • 如果提示 “文件已存在”,可選擇覆蓋或另存為其他文件名,也可以按提示輸入一個新的名稱。

  2. 生成完成后,執行以下命令查看公鑰內容:

    cat ~/.ssh/id_ed25519.pub
    

    終端會輸出一串以 ssh-ed25519 開頭的字符串,這就是公鑰。

2. 將 SSH 公鑰添加到 GitHub

  1. 在瀏覽器中,登陸 GitHub,點擊右上角頭像,選擇“Settings”(設置)。

  2. 在左側欄中找到 SSH and GPG keys,點擊進入。

  3. 點擊 New SSH key(新增 SSH 密鑰),在“Title”框里可以填寫一個有意義的名字(例如 “My Laptop”),然后把剛才復制的公鑰粘貼到下面的文本框中,最后點擊 Add SSH key

  4. 如果 GitHub 要求你輸入賬號密碼或兩步驗證碼,按提示輸入即可。

添加成功后,SSH 驗證就設置完畢。可以測試連接:

ssh -T git@github.com

如果提示類似 “Hi <用戶名>! You've successfully authenticated...” 則說明 SSH 驗證配置正確。


四、在 GitHub 上創建一個空倉庫

  1. 登陸 GitHub 后,點擊右上角的 “+” 按鈕,選擇 New repository(新建倉庫)。

  2. 在 “Create a new repository” 頁面填寫:

    • Repository name:為你的項目起個名字,例如 my-project

    • Description(可選):添加簡短描述。

    • PublicPrivate:根據需要選擇公開或私有。

    • Initialize this repository with a README:通常不勾選,否則會自動生成一個 README 文件,后續需要先拉取再推送。

  3. 點擊下方的 Create repository(創建倉庫),稍等片刻后就會進入新倉庫頁面。頁面上會提供 HTTPS 和 SSH 兩種地址,如:

    • HTTPS: https://github.com/你的用戶名/my-project.git

    • SSH: git@github.com:你的用戶名/my-project.git
      記住這兩個地址中的一種,后續用來關聯本地倉庫。


五、將本地項目與遠程倉庫關聯并上傳

下面以一個已存在本地項目的目錄為例,演示如何上傳到 GitHub。假設本地項目文件夾路徑為 ~/projects/my-project,且目錄下已有若干源代碼或資源文件。

1. 在本地初始化 Git 倉庫

  1. 打開終端,切換到項目根目錄:

    cd ~/projects/my-project
    
  2. 在該目錄下執行:

    git init
    

    這會創建一個隱藏的 .git/ 文件夾,使該目錄成為一個 Git 倉庫。

  3. 你可以運行 ls -Agit status 來確認目錄下已有普通文件,但 Git 還沒追蹤它們。

2. 將文件添加到暫存區并提交

  1. 查看當前狀態(可選):

    git status
    

    這時 Git 會告訴你哪些文件是 “Untracked files”(未跟蹤文件)。

  2. 把所有文件添加到暫存區

    git add .
    

    這樣做會把當前目錄(及子目錄)下所有未被忽略的文件都納入暫存區。

  3. 創建第一次提交

    git commit -m "首次提交:項目初始化"
    

    以上操作會在本地生成一個提交記錄(commit),大多數情況下會默認在 master 分支上。如果想直接把主分支命名為 main,可以執行:

    git branch -M main
    

    這樣以后本地倉庫的主分支就是 main(與 GitHub 通用約定保持一致)。

3. 將本地倉庫與遠程倉庫關聯

  1. 在本地執行下面命令,將遠程倉庫地址添加為名為 origin 的遠程源:

    • 使用 HTTPS(需要每次輸入用戶名/密碼或 Token):

      git remote add origin https://github.com/你的用戶名/my-project.git
      
    • 使用 SSH(已配置 SSH 密鑰則無需輸入密碼):

      git remote add origin git@github.com:你的用戶名/my-project.git
      

    注意:命令開頭務必是小寫的 git,不要帶任何隱藏字符或破折號。

  2. 添加成功后,可用下面命令確認:

    git remote -v
    

    你會看到類似:

    origin  https://github.com/你的用戶名/my-project.git (fetch)
    origin  https://github.com/你的用戶名/my-project.git (push)
    

    或者如果用的是 SSH,則顯示:

    origin  git@github.com:你的用戶名/my-project.git (fetch)
    origin  git@github.com:你的用戶名/my-project.git (push)
    

4. 推送本地提交到遠程倉庫

  1. 如果當前分支是 main

    git push -u origin main
    

    如果當前分支是 master(沒有重命名為 main),則:

    git push -u origin master
    
    • -u origin main 的含義是:把本地 main 分支推送到遠程 origin,并建立跟蹤關系。以后只需直接執行 git push 即可。

  2. 在推送過程中,如果使用 HTTPS,需要輸入 GitHub 用戶名和密碼(如果啟用了兩步驗證,則輸入 Personal Access Token);如果使用 SSH,且 SSH key 已配置好,則不會再提示輸入密碼。

  3. 推送成功后,終端會顯示類似:

    Enumerating objects: 10, done.
    Counting objects: 100% (10/10), done.
    Compressing objects: 100% (7/7), done.
    Writing objects: 100% (10/10), 1.23 KiB | 1.23 MiB/s, done.
    Total 10 (delta 0), reused 0 (delta 0)
    To https://github.com/你的用戶名/my-project.git* [new branch]      main -> main
    branch 'main' set up to track 'origin/main'.
    
  4. 刷新瀏覽器,打開 GitHub 上該倉庫頁面,就能看到你剛才上傳的所有文件。


六、后續開發與同步

項目上傳成功后,后續只需按照下面步驟更新遠程倉庫即可。

1. 修改/新增文件后上傳

  1. 在本地對文件進行修改或新增文件。

  2. 查看項目狀態:

    git status
    

    可以看到哪些文件被修改、哪些是新文件。

  3. 添加改動到暫存區:

    • 如要一次添加所有改動:

      git add .
      
    • 如果只想添加某個文件:

      git add path/to/yourfile.ext
      
  4. 提交改動:

    git commit -m "本次更新:簡要說明修改內容"
    
  5. 推送到遠程:

    git push
    

    由于第一次已經用 -u origin main-u origin master 與遠程分支建立了跟蹤關系,后續直接 git push 即可。

2. 如果遠程倉庫有了新的提交(多人協作時常見)

  1. 在推送之前,可以先拉取遠程更新:

    git pull --rebase origin main
    

    或者:

    git pull origin main
    
    • --rebase 可以保持提交歷史線性;不帶則會自動創建一個合并提交(Merge commit)。

  2. 如果出現沖突(Conflict),按提示打開沖突文件,手動保留、刪除沖突標記(<<<<<<<=======>>>>>>>),然后執行:

    git add 沖突已解決的文件
    git rebase --continue   # 如果使用了 --rebase
    

    或者如果是普通 git pull

    git add 沖突已解決的文件
    git commit
    

    沖突解決完成后再執行 git push,即可把本地改動與遠程最新內容同步。


七、常見問題與注意事項

  1. 命令前不要出現隱藏字符

    • 如果復制粘貼時前面多了不可見破折號(如 “?”)或空格,Git 會識別為非法命令,從而提示 “command not found”。遇到這種情況,請按幾次退格鍵把前導的隱藏字符清除,然后再手動輸入 git initgit add 等命令。

  2. .gitignore 文件

    • 在項目根目錄創建一個名為 .gitignore 的文件,寫入你不想跟蹤(即不想上傳到遠程)的文件或文件夾規則。常見示例:

      node_modules/
      *.log
      .env
      .DS_Store
      build/
      *.pyc
      
    • 這樣做可以避免把編譯生成的臨時文件、IDE 配置、依賴包等無關文件上傳到倉庫。

  3. 分支管理

    • 默認情況下,你會在 main(或 master)分支上工作。如果想開發新功能、修復 Bug,通常會新建分支:

      git checkout -b feature/新功能名稱
      
    • 完成開發并測試通過后,切回 main 分支并合并:

      git checkout main
      git merge feature/新功能名稱
      git branch -d feature/新功能名稱
      
    • 合并完成后,再執行 git push 即可把合并后的結果推到遠程。

  4. SSH 與 HTTPS

    • 如果長時間需要頻繁推送,推薦使用 SSH 方式,只需在本地生成過一次 SSH 密鑰,并把公鑰添加到 GitHub,就不需要每次輸入用戶名/密碼或 Token。

    • 如果安全要求較高或不方便配置 SSH,也可以繼續使用 HTTPS,但每次推送時都可能需要輸入 Token。

  5. Token 和安全

    • GitHub 已逐步棄用直接使用密碼進行 HTTPS 驗證,強制使用個人訪問令牌(Personal Access Token)。

    • 在終端推送時,如果提示要求用戶名和密碼,你可以把用戶名填為 GitHub 用戶名,然后把個人訪問令牌粘貼到密碼處。訪問令牌可以在 GitHub 個人設置里新建。

  6. 遠程倉庫已初始化 README 情況

    • 如果你在新建倉庫時勾選了“初始化 README”,遠程倉庫就會自帶一個提交記錄。這時本地一開始是空的,如果你直接執行 git push 會被拒絕(提示需要先拉取遠程更改)。解決方法是先執行:

      git pull --rebase origin main
      

      把遠程的那次提交拉下來并合并到本地,然后再 git push


八、小結

  1. 安裝 Git 并配置 user.nameuser.email

  2. (可選)配置 SSH 密鑰,將公鑰添加到 GitHub。

  3. 在 GitHub 上創建一個空倉庫(不勾選初始化 README)。

  4. 在本地項目目錄執行 git init,將項目轉為 Git 倉庫。

  5. 執行 git add .git commit -m "描述",完成首次提交。

  6. 使用 git remote add origin <遠程倉庫地址> 關聯遠程。

  7. 執行 git push -u origin main(或 master)將本地提交推送到 GitHub。

  8. 后續開發:用 git addgit commitgit push 完成更新。若需合并遠程改動,先 git pull --rebasegit push

以上步驟涵蓋了從安裝軟件到首次上傳,再到后續代碼同步的完整流程。只要每一步都按照說明并自己手動輸入命令,就能順利把項目上傳并保持與 GitHub 的同步。

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

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

相關文章

使用 Docker Compose 從零部署 TeamCity + PostgreSQL(詳細新手教程)

JetBrains TeamCity 是一款專業的持續集成&#xff08;CI&#xff09;服務器工具&#xff0c;支持各種編程語言和構建流程。本文將一步一步帶你用 Docker 和 Docker Compose 快速部署 TeamCity&#xff0c;搭配 PostgreSQL 數據庫&#xff0c;并確保 所有操作新手可跟著做。 一…

微軟推出SQL Server 2025技術預覽版,深化人工智能應用集成

在Build 2025 大會上&#xff0c;微軟向開發者社區開放了SQL Server 2025的測試版本。該版本的技術改進主要涵蓋人工智能功能集成、系統性能優化與開發工具鏈升級三個維度&#xff0c;展示了數據庫管理系統在智能化演進方向上的重要進展。 智能數據處理功能更新 新版本的技術亮…

企業管理中,商業智能BI主要做哪些事情?

開門見山的告訴大家&#xff0c;在企業管理中商業智能BI 主要就做三件事&#xff1a;拉通數據、整合數據、數據可視化展現。 技術角度的商業智能BI 從技術的角度來講&#xff0c;商業智能BI是一套完整的由數據倉庫、查詢報表、數據分析等組成的數據類技術解決方案。它有一個非…

openharmony5.0.0中kernel子系統編譯構建流程概覽(rk3568)

概述 在梳理openharmony對linux內核做了哪些更改時&#xff0c;簡單梳理了下kernel部分的編譯構建流程&#xff0c;并根據源碼做了簡單論證。分享出來&#xff0c;希望對大家有所幫助。 系統版本:openharmony5.0.0 開發板:dayu200 編譯環境:ubuntu22 執行流程 在kernel\l…

考研系列—操作系統:沖刺筆記(4-5章)

目錄 第四章 文件管理 1.真題總結文件管理方式 (1)目錄文件的FCB就是“目錄名-目錄地址” (2)普通文件的FCB (3)區分索引文件、順序文件、索引分配 (4)文件的物理結構 ①連續分配方式 ②鏈接分配 ③索引分配-使用索引表(一個文件對應一張索引表!!!) 計算考點:超級…

配置URDF模型,調整模型中部件的形狀/尺寸,以及在ROS2的Rviz2中進行可視化。

配置URDF模型&#xff0c;調整模型中部件的形狀/尺寸&#xff0c;以及在ROS2的Rviz2中進行可視化。 提問 在 ROS2 的rviz2 里面&#xff0c;urdf模型哪些部分選擇可視化&#xff0c;哪些部分暫時不呈現在界面上&#xff0c;怎么在rviz2中操作&#xff1f; 回答 在 ROS2 的 …

基于SpringBoot+Vue2的租房售房二手房小程序

角色&#xff1a; 管理員、房東、租客/買家 技術&#xff1a; springbootvue2mysqlmybatispagehelper 核心功能&#xff1a; 租房售房小程序是一個專注于房屋租賃和銷售的綜合性平臺&#xff0c;基于SpringBootVue2MySQLMyBatisPageHelper技術棧開發&#xff0c;為用戶提供…

掌握子網劃分:優化IP分配與管理

子網劃分是通過調整子網掩碼&#xff0c;將單一IP網絡劃分為多個邏輯子網的過程&#xff0c;其核心原理是借用主機位作為子網位以優化地址分配和管理。具體方法與原理如下&#xff1a; 一、子網劃分基本原理 核心目的&#xff1a; 減少IP浪費&#xff1a;避免大塊地址閑置&…

[原創](現代Delphi 12指南):[macOS 64bit App開發]: TTask創建多線程, 更簡單, 更快捷.

[作者] 常用網名: 豬頭三 出生日期: 1981.XX.XX 企鵝交流: 643439947 個人網站: 80x86匯編小站 編程生涯: 2001年~至今[共24年] 職業生涯: 22年 開發語言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 開發工具: Visual Studio、Delphi、XCode、…

終極數據結構詳解:從理論到實踐

終極數據結構詳解&#xff1a;從理論到實踐 我將從 底層原理、時間復雜度、空間優化、實際應用 和 代碼實現 五個維度&#xff0c;徹底解析數據結構。內容涵蓋&#xff1a; 線性結構&#xff08;數組、鏈表、棧、隊列&#xff09;非線性結構&#xff08;樹、圖&#xff09;高…

gvim比較兩個文件不同并合并差異

使用 gvim 比較兩個文件的不同&#xff1a; 方式一&#xff0c;使用 gvim 同時打開兩個待比較的文件。 比較通用方式是采用 gvim -d 選項&#xff0c;具體命令&#xff0c;如下&#xff1a; gvim -d <file1> <file2>方式二&#xff0c;先用 gvim 打開一個文件&am…

15個基于場景的 DevOps 面試問題及答案

第一部分:持續集成和部署 (CI/CD) 場景 1:構建中斷 “您的 CI 流水線突然出現‘找不到依賴項’的錯誤。您會如何處理這個問題?” 回答:首先,我會檢查是否有新的依賴項被添加到需求文件中,但這些依賴項并未包含在需求文件中。我還會驗證構建服務器是否可以訪問互聯網來下…

Linux隨記(十八)

一、k8s的node節點磁盤 /data已使用率超過 85% , 出現disk pressure &#xff0c;驅逐pod現象 evicted &#xff0c; the node had condition:[DiskPressure] #修改/var/lib/kubelet/config.yaml ]# cat /var/lib/kubelet/config.yaml apiVersion: kubelet.config.k8s.io/v1…

利用Python 進行自動化操作: Pyautogui 庫

目錄 1. 前言 2. 安裝 PyAutoGUI 3. 常見函數介紹 3.1 鼠標操作 3.2 鍵盤操作 3.3 截圖與圖像識別 4. 簡單案例 5. 總結 1. 前言 我們常常需要與各種軟件和系統交互&#xff0c;而人工操作往往耗時且容易出錯。這時&#xff0c;PyAutoGUI 就可以幫我們解放雙手&#…

如何在Windows本機安裝Python并確保與Python.NET兼容

?作者簡介&#xff1a;2022年博客新星 第八。熱愛國學的Java后端開發者&#xff0c;修心和技術同步精進。 &#x1f34e;個人主頁&#xff1a;Java Fans的博客 &#x1f34a;個人信條&#xff1a;不遷怒&#xff0c;不貳過。小知識&#xff0c;大智慧。 &#x1f49e;當前專欄…

oracle數據恢復—oracle數據庫執行truncate命令后的怎么恢復數據?

oracle數據庫誤執行truncate命令導致數據丟失是一種常見情況。通常情況下&#xff0c;oracle數據庫誤操作刪除數據只需要通過備份恢復數據即可。也會碰到一些特殊情況&#xff0c;例如數據庫備份無法使用或者還原報錯等。下面和大家分享一例oracle數據庫誤執行truncate命令導致…

計算機二級Python考試的核心知識點總結

以下是計算機二級Python考試的核心知識點總結&#xff0c;結合高頻考點和易錯點分類整理&#xff1a; 1. **數據類型與運算** ? 不可變類型&#xff1a;int, float, str, tuple&#xff08;重點區分list與tuple&#xff09; ? 運算符優先級&#xff1a;** > * /…

Vue 組件庫發布實戰(含 TypeScript 支持)

整理不易&#xff0c;如果本文對你有幫助&#xff0c;歡迎點個【贊 &#x1f44d;】【收藏 ?】【關注 &#x1f9e1;】 &#x1f4e6;Vue 組件庫發布實戰&#xff08;含 TypeScript 支持&#xff09; 在上一篇中我們完成了一個基礎 Vue 3 組件的 npm 發布流程。本文將升級內容…

新版雙紫擒龍、紫紫紅黃、動能二號源碼指標源碼公式講解

雙紫擒龍量化指標公式源碼&#xff0c;雙紫擒龍紫紫紅黃2025升級版的量化指標龍頭模型............ 實戰舉例&#xff0c;量化擒龍------副圖源碼&#xff0c;如下&#xff1a; DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); ABC2:REF(CLOSE,1); ABC3:IF((CLOSE-ABC2…

c++中鎖類型對比與實戰

C++中的鎖類型對比與實戰:std::lock_guard、std::unique_lock、std::shared_lock 在多線程編程中,合理地使用鎖是保證數據一致性和線程安全的關鍵。C++標準庫提供了多種鎖類型,每種都有其適用場景和性能特性。本文將深入分析 std::lock_guard、std::unique_lock、std::shar…