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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;一、源电路的核…