GitHub使用小記——本地推送、外部拉取和分支重命名

GitHub 項目推送與拉取等操作使用隨記

本小記適用于個人項目或組織項目,涵蓋 GitHub 推送、拉取、分支管理、.gitignore 設置等常見需求。


1. 將已有本地工程推送至 GitHub 新倉庫

1.1 前提條件

  • 本地項目結構完整,已準備好;
  • 本地已安裝 Git,配置了用戶名郵箱:
    git config --global user.name "你的用戶名"
    git config --global user.email "你的郵箱"
    
  • 已在 GitHub 創建新倉庫(可勾選 README);

1.2 操作步驟

A. GitHub 網站端
  1. 登錄 GitHub;
  2. 點擊右上角 +New repository
  3. 填寫倉庫信息;
  4. 可選擇勾選 “Add a README file”;
  5. 點擊【Create repository】;
  6. 復制 HTTPS 地址(如:https://github.com/YourName/RepoName.git);
B. 本地終端操作
# 在本地的工程目錄下打開終端
cd /你的本地工程目錄 
git init
# 若有.gitignore,可在其中添加工程中可忽略的文件
echo ".metadata/" >> .gitignore   # 忽略 .metadata
git remote add origin https://github.com/YourName/RepoName.git
git pull origin main --allow-unrelated-histories  # 若遠程含 README
git add .
git commit -m "init: 初始化本地項目"
git push -u origin main

2. 遠程倉庫含 README,本地合并推送處理

2.1 前提條件

  • GitHub 倉庫已初始化 README;
  • 本地項目也有初始代碼。

2.2 操作步驟

git pull origin main --allow-unrelated-histories
# 解決沖突后
git add .
git commit -m "merge: 合并遠程 README 與本地代碼"
git push origin main

3. 修改本地分支名 master ? main 并同步遠程

3.1 前提條件

  • 本地分支仍是默認 master
  • GitHub 新倉庫使用 main 分支。

3.2 操作步驟

git branch -m master main             # 重命名分支
git push -u origin main               # 推送新分支
git push origin --delete master      # 刪除舊遠程分支(可選)
# GitHub 設置:Settings → Branches → 修改默認分支為 main

4. 添加 .gitignore 忽略無關目錄或文件

4.1 前提條件

  • 項目含 .metadata/.vscode/ 等非必要文件;

4.2 操作步驟

# 使用echo命令可將非必要文件寫入.gitignore,也可直接打開文件進行寫入
echo ".metadata/" >> .gitignore
echo ".vscode/" >> .gitignore
echo "__pycache__/" >> .gitignore
# 若之前已經添加這些文件,可使用下面命令刪除
git rm -r --cached .metadata
git rm -r --cached .vscode
# 添加最新的.gitignore
git add .gitignore
git commit -m "chore: 更新 .gitignore"
git push

5. 推送失敗:權限拒絕(組織倉庫)

5.1 前提條件

  • 倉庫歸屬某個組織;
  • 你不是組織成員或無寫入權限;
  • 報錯信息示例:
    ERROR: Write access to repository not granted.
    

5.2 操作步驟

git remote -v                    # 檢查當前遠程地址
git remote set-url origin https://github.com/OrgName/RepoName.git# 若仍失敗:
## 聯系組織管理員添加你為協作者或團隊成員
## 或 Fork 項目到你賬號下再開發

6. 項目結構建議與 .gitignore 示例

6.1 推薦目錄結構

# YourProject是github倉庫名,即推送的最好是本地工程目錄下的內容(而非用工程目錄名包裹的內容),這樣打開github倉庫時映入眼簾的就是內部的重要文件夾,便于閱讀YourProject/
├── README.md
├── .gitignore
├── requirements.txt
├── /src
├── /scripts
├── /config
├── /docs
└── ...

6.2 .gitignore 內容示例

.metadata/
.vscode/
__pycache__/
*.log
.DS_Store

7. 在 VS Code 中執行推送流程

7.1 前提條件

  • 已在本地安裝 Git;
  • VS Code 安裝了官方擴展:GitHub Pull Requests and Issues;
  • 項目文件夾已通過 VS Code 打開;

7.2 操作步驟

A. 初始化 Git 倉庫
  1. 在 VS Code 左側點擊 Source Control(源代碼管理圖標)
  2. 如果尚未初始化,會提示 “Initialize Repository” → 點擊
  3. 選擇當前打開的文件夾作為 Git 根目錄
B. 連接 GitHub 倉庫
  1. 打開命令面板(Ctrl+Shift+PF1
  2. 輸入并選擇:Git: Add Remote
  3. 輸入遠程名稱(一般為 origin
  4. 粘貼 GitHub 倉庫地址(如 https://github.com/YourName/Repo.git
C. 拉取遠程 README(若遠程已存在)
  1. 打開終端(Ctrl+`

  2. 執行:

    git pull origin main --allow-unrelated-histories
    
D. 添加 .gitignore(忽略無關文件)
  1. 在項目根目錄新建 .gitignore 文件

  2. 添加如下內容:(示例)

    .metadata/
    .vscode/
    __pycache__/
    
E. 提交代碼
  1. 左側 Source Control 看到所有變更
  2. 輸入提交信息,如 init: 初始化項目
  3. 點擊 √ 圖標(提交)
F. 推送至遠程倉庫
  1. 點擊...三點菜單 → Push

  2. 若首次推送,自動提示選擇遠程和分支(選 origin/main

  3. 也可在終端執行:

    git push -u origin main
    

8. 附錄:常用命令

# 初始化本地倉庫
git init# 添加遠程倉庫
git remote add origin <倉庫地址># 添加所有改動文件
git add .# 提交說明
git commit -m "備注信息"# 推送到遠程分支
git push -u origin main# 拉取并允許無共同歷史
git pull origin main --allow-unrelated-histories# 重命名分支
git branch -m master main

9. 總結

本筆記整理了將本地項目推送到 GitHub 的完整流程,主要包括:

  1. 本地 Git 初始化與遠程倉庫建立連接;
  2. 處理已有 README 的遠程倉庫合并問題;
  3. 設置 .gitignore 忽略無關文件;
  4. 重命名本地分支為 main 并同步推送;
  5. 針對組織倉庫的權限問題做出說明;
  6. 補充了 VS Code 下的操作方法,適合圖形化管理項目。

筆者能力有限,以上內容難免存在不足和紕漏,僅供參考,各位閱讀時請帶著批判性思維學習,遇到問題多查查,謝謝。

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

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

相關文章

RabbitMQ 延時隊列插件安裝與使用詳解(基于 Delayed Message Plugin)

RabbitMQ 延時隊列插件安裝與使用詳解&#xff08;基于 Delayed Message Plugin&#xff09;&#x1f4cc; 一、什么是 RabbitMQ 延時隊列&#xff1f;&#x1f680; 二、安裝前準備? RabbitMQ 環境要求&#x1f527; 三、安裝延時隊列插件&#x1f9e9; 插件名稱&#xff1a;…

Vue項目使用ssh2-sftp-client實現打包自動上傳到服務器(完整教程)

告別手動拖拽上傳&#xff01;本教程將手把手教你如何通過ssh2-sftp-client實現Vue項目打包后自動上傳到服務器&#xff0c;提升部署效率300%。&#x1f680;一、需求場景與解決方案在Vue項目開發中&#xff0c;每次執行npm run build后都需要手動將dist目錄上傳到服務器&#…

《質光相濟:Three.js中3D視覺的底層交互邏輯》

在Three.js搭建的虛擬維度中,光照與材質的關系遠非技術參數的簡單疊加,當光線以數字形態穿越虛空,與物體表面相遇的瞬間,便開始書寫屬于這個世界的物理敘事——每一縷光斑的形狀、每一塊陰影的濃淡、每一寸肌理的反光,都是對現實光學規律的轉譯與重構。理解這種交互的深層…

無刷電機在汽車領域的應用與驅動編程技術

文章目錄引言一、核心應用場景1. 新能源汽車動力系統2. 底盤控制系統3. 車身與舒適系統4. 智能駕駛與安全系統二、無刷電機的技術優勢解析三、無刷電機驅動編程基礎1. 驅動原理2. 驅動架構四、核心控制算法與實現1. 六步換向法&#xff08;梯形波控制&#xff09;算法流程圖C語…

【游戲引擎之路】登神長階(十八):3天制作Galgame引擎《Galplayer》——無敵之道心

游戲引擎開發記錄&#xff1a;2024年 5月20日-6月4日&#xff1a;攻克2D物理引擎。 2024年 6月4日-6月13日&#xff1a;攻克《3D數學基礎》。 2024年 6月13日-6月20日&#xff1a;攻克《3D圖形教程》。 2024年 6月21日-6月22日&#xff1a;攻克《Raycasting游戲教程》。 2024年…

kotlin kmp 跨平臺環境使用sqldelight

歡迎訪問我的主頁: https://heeheeaii.github.io/ 1. 項目結構 SQLDelightKMPDemo/ ├── shared/ │ ├── src/ │ │ ├── commonMain/kotlin/ │ │ ├── androidMain/kotlin/ │ │ ├── desktopMain/kotlin/ │ │ └── commonMain/sqldel…

機器學習【五】decision_making tree

決策樹是一種通過樹形結構進行數據分類或回歸的直觀算法&#xff0c;其核心是通過層級決策路徑模擬規則推理。主要算法包括&#xff1a;ID3算法基于信息熵和信息增益選擇劃分屬性&#xff1b;C4.5算法改進ID3&#xff0c;引入增益率和剪枝技術解決多值特征偏差&#xff1b;CART…

簡單記錄一下VSCode中的一些學習記

在剛開始學習VSCode時&#xff0c;相信大家都會好奇VSCode底部區域那幾個不同的狀態欄具體有什么作用&#xff08;輸出、調試控制臺、終端、端口&#xff09;&#xff0c;貌似好像都是輸出與代碼相關的信息的&#xff1f;貌似代碼運行結果既可以出現在輸出中&#xff0c;也可以…

基于 Hadoop 生態圈的數據倉庫實踐 —— OLAP 與數據可視化(二)

目錄 二、Hive、SparkSQL、Impala 比較 1. SparkSQL 簡介 2. Hive、SparkSQL、Impala 比較 &#xff08;1&#xff09;功能 &#xff08;2&#xff09;架構 &#xff08;3&#xff09;場景 3. Hive、SparkSQL、Impala 性能對比 &#xff08;1&#xff09;cloudera 公司…

C++:std::array vs 原生數組 vs std::vector

&#x1f4cc; C&#xff1a;std::array vs 原生數組 vs std::vector 引用&#xff1a; C/C 標準庫 std::vector、std::array、原生靜態數組 的區別有哪些&#xff1f; 深度剖析&#xff1a;std::vector 內存機制與 push_back 擴容策略 今天過去了 還有許許多個明天 能和大…

Hyper-V + Centos stream 9 搭建K8s集群(二)

一、安裝自動補全主節點安裝就可以yum install -y bash-completion echo source <(kubectl completion bash) >>~/.bashrc kubectl completion bash >/etc/bash_completion.d/kubectl二、安裝Calico網絡插件&#xff08;主節點&#xff09;下載文件wget https://ca…

VBA代碼解決方案第二十七講:禁用EXCEL工作簿右上角的關閉按鈕

《VBA代碼解決方案》(版權10028096)這套教程是我最早推出的教程&#xff0c;目前已經是第三版修訂了。這套教程定位于入門后的提高&#xff0c;在學習這套教程過程中&#xff0c;側重點是要理解及掌握我的“積木編程”思想。要靈活運用教程中的實例像搭積木一樣把自己喜歡的代碼…

Spring AI 系列之三十一 - Spring AI Alibaba-基于Nacos的MCP

之前做個幾個大模型的應用&#xff0c;都是使用Python語言&#xff0c;后來有一個項目使用了Java&#xff0c;并使用了Spring AI框架。隨著Spring AI不斷地完善&#xff0c;最近它發布了1.0正式版&#xff0c;意味著它已經能很好的作為企業級生產環境的使用。對于Java開發者來說…

sqli-labs:Less-12關卡詳細解析

1. 思路&#x1f680; 本關的SQL語句為&#xff1a; $uname".$uname."; $passwd".$passwd."; $sql"SELECT username, password FROM users WHERE username($uname) and password($passwd) LIMIT 0,1";注入類型&#xff1a;字符串型&#xff0…

【SpringAI】8.通過json動態添加mcp服務

前言 官方示例的代碼中&#xff0c;mcp一般是配置到yml中或者json文件中&#xff0c;使用自動裝配的方式注入服務&#xff0c;這種方式不方便在程序啟動后添加新的服務&#xff0c;這里參考cherry studio的方式動態添加mcp服務 1.確定方案 mcp服務的維護放到mysql業務數據庫維…

【PDF + ZIP 合并器:把ZIP文件打包至PDF文件中】

B站鏈接 PDF ZIP 合并器&#xff1a;把ZIP文件打包至PDF文件中_嗶哩嗶哩_bilibiliz 加強作者的工具 https://wwgw.lanzn.com/i8h1C32k9bef 密碼:30cv 新增c框架&#xff0c;加快運行速度

阿里云部署微調chatglm3

git Ifs install Git lfs 主要用于管理大型文件。在傳統的Git倉庫中&#xff0c;所有文件內容都會被完整記錄在每一次提交中&#xff0c;這會導致倉庫體積增大&#xff0c;克隆、拉取和推送操作變慢&#xff0c;甚至可能超出存儲限額。Git LFS通過將大文件替換成文本指針&#…

Linux網絡編程 ---五種IO模型

五種IO模型一、IO慢的原因二、五種IO模型三、如何設置非阻塞式IO&#xff1f;一、IO慢的原因 二、五種IO模型 阻塞式IO 非阻塞式IO 信號驅動IO 多路轉接 異步IO 三、如何設置非阻塞式IO&#xff1f; &#xff08;一&#xff09;用法說明 &#xff08;二&#xff0…

Obsidian結合CI/CD實現自動發布

CI/CDQuickAddJS腳本bat腳本sh腳本實現自動發版Hugo文章 需求來源 每次手動執行Hugo的命令&#xff0c;手動把public文件夾上傳到自己的服務器可以完成發版需求。 但是&#xff0c;作為一個內容創作者&#xff0c;我更希望的關注于自己的內容&#xff0c;而不是關注整個發版…

[硬件電路-141]:模擬電路 - 源電路,信號源與電源,能自己產生確定性波形的電路。

源電路&#xff08;Source Circuit&#xff09;是電子系統中為其他電路或負載提供特定信號或能量的基礎電路模塊&#xff0c;其核心功能是生成、調節或轉換所需的物理量&#xff08;如電壓、電流、波形、頻率等&#xff09;。以下是源電路的詳細解析&#xff1a;一、源電路的核…