GitHub与Git命令使用笔记
GitHub与Git命令使用笔记
文章目录
- GitHub与Git命令使用笔记
- 上传本地的新项目到github
- 1. 创建新的GitHub仓库
- 2. 初始化本地项目目录
- 3. 将本地仓库关联到GitHub
- 4. 推送本地代码到GitHub
- 上传本地项目到GitHub时发生冲突
- 将默认分支名称从master改为main
- git 把远程项目拉到本地,并和本地项目合并
- 1. 在本地项目中添加远程仓库
- 2. 拉取远程仓库的内容
- 3. 检查远程分支
- 4. 切换到你想合并的分支
- 5. 合并远程分支
- 如果本地的更改是有效的,需要合并处理冲突
- 1. 提交更改
- 2. 贮藏更改
- 3. 放弃本地更改
- 6. 推送合并更改
上传本地的新项目到github
1. 创建新的GitHub仓库
- 在GitHub的首页或任意页面,点击右上角的"+“,然后选择"New repository”。
- 填写仓库的基本信息:
- Repository name:仓库名称。
- Description(可选):仓库描述。
- Visibility:选择仓库的可见性(公开或私有)。
- 根据需要选择其他选项,如初始化README文件、添加.gitignore或选择许可证。
- 点击"Create repository"。
.gitignore是什么:用于指定在版本控制过程中Git应该忽略的文件和目录
.gitignore示例:
# 忽略所有.log结尾的文件
*.log# 忽略临时文件,以~结尾
*~# 忽略特定目录下的所有文件(例如,node_modules)
node_modules/# 忽略特定的文件(例如,config.env)
config.env# 忽略所有.DS_Store(Mac系统文件)
.DS_Store# 忽略所有生成的二进制文件,例如Java编译产生的.class文件
*.class# 忽略打包文件
*.jar# 对于Python项目,忽略虚拟环境目录
venv/
.env/# 忽略编译生成的文件
/bin/
/obj/
/build/# 忽略IDE设置文件和文件夹,如IntelliJ IDEA和VSCode
.idea/
.vscode/# 忽略特定前缀的文件,例如所有以tmp开头的文件
tmp*# 不忽略特定文件(即使前面的规则匹配了它)
# 使用感叹号'!'来表示不忽略
!important.log# 忽略特定文件夹下除某个文件外的所有文件
/somefolder/*
!/somefolder/keepme.txt
2. 初始化本地项目目录
在本地项目目录中打开终端或命令提示符,执行以下命令:
-
初始化Git仓库:
git init这将在项目目录中创建一个新的git仓库。
-
添加文件到Git仓库:
首先,可以使用git add命令来添加文件到仓库中,例如:git add .这个命令会添加当前目录下的所有文件到仓库中。如果只想添加特定文件,可以将
.替换为具体的文件名。 -
提交更改:
使用以下命令来提交这些更改到仓库:git commit -m "Initial commit"其中
"Initial commit"是提交消息,可以根据实际更改内容自定义这个消息。
3. 将本地仓库关联到GitHub
使用在GitHub创建仓库时得到的URL将本地仓库关联到GitHub上。这个URL可以在仓库页面的"Quick setup"部分找到。执行以下命令,将<your-repository-URL>替换为实际的URL:
git remote add origin <your-repository-URL>
4. 推送本地代码到GitHub
最后,使用以下命令将本地代码推送到GitHub仓库:
git push -u origin main
这样,就成功地将本地的新项目上传到了GitHub。在未来,每当完成了一系列更改并希望将这些更改推送到GitHub时,只需要重复上面的git add、git commit和git push步骤。
上传本地项目到GitHub时发生冲突
将默认分支名称从master改为main
将默认分支名称从master改为main,可以按照以下步骤操作:
-
全局更改默认分支名称(可选):
git config --global init.defaultBranch main -
更改当前仓库的分支名称:
git branch -m main
git 把远程项目拉到本地,并和本地项目合并
要将远程项目拉取到本地并与现有的本地项目合并,可以遵循以下步骤。这些步骤假设已经有一个本地项目和一个远程仓库,并且希望将远程仓库的内容合并到本地项目中。
1. 在本地项目中添加远程仓库
首先,需要在本地项目中添加远程仓库(如果尚未添加)。打开终端或命令提示符,然后导航到的本地项目目录。使用以下命令添加远程仓库(将<remote-repo-url>替换为你的远程仓库URL):
git remote add origin <remote-repo-url>
这里,origin是远程仓库的默认名称,但你可以选择任何名称。
2. 拉取远程仓库的内容
使用以下命令从远程仓库拉取最新的内容:
git fetch origin
3. 检查远程分支
在合并之前,你可能想要检查远程仓库中有哪些分支:
git branch -r
4. 切换到你想合并的分支
如果你还没有本地分支对应于远程分支,你可以使用以下命令创建并切换到一个新的本地分支,这个分支会跟踪远程分支(将<branch-name>替换为想要合并的分支名):
git checkout -b <branch-name> origin/<branch-name>
如果已经有了一个本地分支并希望将远程分支的变更合并到这个本地分支中,确保现在就在那个本地分支上。如果不是,使用git checkout <branch-name>切换到那个分支。
5. 合并远程分支
现在,使用以下命令将远程分支的变更合并到你的当前本地分支:
git merge origin/<branch-name>
如果本地的更改是有效的,需要合并处理冲突
如果在合并过程中遇到任何冲突,Git将提示你解决这些冲突。可以手动编辑冲突文件,然后使用git add <file>来标记它们已解决。
这个错误信息表明在尝试合并origin/main分支到你的当前分支时,存在一些未提交的更改。这些本地更改在合并操作中可能会被覆盖,因此Git阻止了合并操作以防止可能的数据丢失。
要解决这个问题,你有几个选项:
1. 提交更改
如果你想保留这些更改,你应该先提交它们。这可以通过以下命令完成:
git add .
git commit -m "描述你的更改"
然后,你可以再次尝试合并:
git merge origin/main
2. 贮藏更改
如果你现在不想提交这些更改,但希望稍后再处理,你可以使用贮藏(stash)功能将更改临时保存起来。这可以通过以下命令完成:
git stash
然后,你可以再次尝试合并:
git merge origin/main
合并完成后,如果你想重新应用之前贮藏的更改,可以使用:
git stash pop
3. 放弃本地更改
如果你确定不再需要这些本地更改,你可以使用以下命令放弃它们:
git checkout -- <file>
将<file>替换为你想放弃更改的文件名,或者如果你想放弃所有未提交的更改,可以使用:
git reset --hard
注意:git reset --hard会放弃所有未提交的更改,并且这些更改无法恢复,请谨慎使用。
选择适合你情况的方法处理本地更改后,你应该就能成功合并origin/main分支了。
6. 推送合并更改
如果你对本地分支进行了更改,并希望将合并后的更改推送到远程仓库,使用以下命令:
git push origin <branch-name>
相关文章:
GitHub与Git命令使用笔记
GitHub与Git命令使用笔记 文章目录 GitHub与Git命令使用笔记上传本地的新项目到github1. 创建新的GitHub仓库2. 初始化本地项目目录3. 将本地仓库关联到GitHub4. 推送本地代码到GitHub上传本地项目到GitHub时发生冲突 将默认分支名称从master改为maingit 把远程项目拉到本地&am…...
二叉树的层次遍历经典问题-算法通关村
二叉树的层次遍历经典问题-算法通关村 1 层次遍历简介 广度优先在面试里出现的频率非常高,整体属于简单题。广度优先又叫层次遍历,基本过程如下: 层次遍历就是从根节点开始,先访问根节点下面一层全部元素,再访问之后…...
SQLiteC/C++接口详细介绍sqlite3_stmt类(十二)
返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(十一) 下一篇: SQLiteC/C接口详细介绍sqlite3_stmt类(十三) 48、sqlite3_stmt_isexplain sqlite3_stmt_is…...
大模型时代如何做安全?
现在应该没人怀疑AI时代的到来了吧,在HUB上每天100的新的预训练模型产生,不夸张的说的,现在稍微有点计算机基础的人都可以训练自己的模型了。 说远了,还是说说那些不争气的安全厂商吧。为啥只说安全厂商?因为国内还是…...
新型储能是什么,储能系统解决方案现状及趋势详细说明
新型储能是指新兴的能够存储电能并在需要时释放的储能技术。其中主要包括光伏储能和商业储能。 光伏储能是指通过光伏电池将太阳能转化为电能,并将其存储起来以供后续使用。光伏储能系统一般由太阳能电池板、储能装置和逆变器组成。光伏储能可以将白天产生的电能存…...
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
在Go语言中,字典通常指的是map类型,它是一种用于存储键值对的数据结构。字典在Go中非常常见,是一种高效的数据结构,用于快速查找和检索数据。 字典的详细使用方法 创建字典 可以使用make函数来创建字典,并指定键值对…...
Flutter-仿携程首页类型切换
效果 唠叨 闲来无事,不小心下载了携程app,还幻想可以去旅游一番,奈何自己运气不好,自从高考时第一次吹空调导致自己拉肚子考试,物理,数学考了一半就交卷,英语2B铅笔除了问题,导致原…...
C语言 自定义类型:结构体
目录 前言 一、结构体类型 1.1 结构体的声明 1.2 结构体变量的创建和初始化 1.3 结构体的特殊声明 1.4 结构体的自引用 二、结构体的对齐 2.1 对齐规则 2.2 内存对齐的原因 2.3 修改默认对齐数 2.4 结构体传参 三、结构体实现位段 3.1 位段的内存分配 3.2 段的跨平…...
计算机网络拓扑结构
目录 <网络拓扑结构概念> <典型的拓扑结构介绍> 第一种,总线型网络拓扑结构 第二种,星型网络拓扑结构 第三种,树型网络拓扑结构 第四种,环型网络拓扑结构 第五种,网状型网络拓扑结构 第六种&#…...
FPGA通过I2C控制AT24C64
文章目录 前言一、代码设计框图二、IIC_drive模块设计2.1、模块接口:2.2、代码功能描述:2.3、IIC协议实现过程: 三、EEPROM_ctrl模块设计3.1、模块接口:3.2、代码功能描述 四、EEPROM_drive模块五、iic_top模块 前言 继上一篇FPG…...
134. 加油站(力扣LeetCode)
文章目录 134. 加油站题目描述暴力枚举(超时)代码一代码二(优化) 贪心算法方法一方法二 134. 加油站 题目描述 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&…...
XSKY 智能存储,助力“数据要素 X”先进制造
3 月 21-22 日,主题为“突破 智行”的 IMC2024 第七届中国智造数字科技峰会在重庆召开。作为在先进制造领域拥有领先存储解决方案以及众多应用实践的企业,星辰天合受邀参加了此次峰会并荣获大会颁发的“最佳存储解决方案奖”。同时,星辰天合先…...
数据挖掘与分析学习笔记
一、Numpy NumPy(Numerical Python)是一种开源的Python库,专注于数值计算和处理多维数组。它是Python数据科学和机器学习生态系统的基础工具包之一,因为它高效地实现了向量化计算,并提供了对大型多维数组和矩阵的支持…...
linux docker镜像初始化
linux docker镜像初始化 简介 有的镜像内部使用的linux系统特别精简,许多常用命令无法安装,导致排查问题较为困难。 可以使用cat /etc/os-release查看容器使用的linux版本,再进行一些常用操作的初始化。 Debian # 设置镜像源 RUN rm -f /…...
专业140+总分410+南京大学851信号与系统考研经验南大电子信息与通信集成,电通,真题,大纲,参考书。
今年分数出来还是有点小激动,专业851信号与系统140(感谢Jenny老师辅导和全程悉心指导,答疑),总分410,梦想的南大离自己越来越近,马上即将复试,心中慌的一p,闲暇之余&…...
. ./ bash dash source 这五种执行shell脚本方式 区别
实际上,., ./, bash, dash, source 是五种不同的方式来执行 shell 脚本,它们之间有一些区别。 .(点号)或 source 命令:这两个命令是等价的,它们都是 Bash shell 内置的命令。它们用于在当前 shell 环境中执行脚本。当使用 . script.sh 或 source script.sh 命令来执行脚本…...
【React 】React 性能优化的手段有哪些?
1. 是什么 React凭借virtual DOM和diff算法拥有高效的性能,但是某些情况下,性能明显可以进一步提高 在前面文章中,我们了解到类组件通过调用setState方法,就会导致render ,父组件一旦发生render渲染,子组件一定也会执…...
3.22网络编程小项目
基于UDP的网络聊天室 项目需求: 如果有用户登录,其他用户可以收到这个人的登录信息如果有人发送信息,其他用户可以收到这个人的群聊信息如果有人下线,其他用户可以收到这个人的下线信息服务器可以发送系统信息 服务器 #includ…...
Git原理及使用
1、Git初识 Git是一种版本控制器: 对于同一份文件,做多次改动,Git会记录每一次改动前后的文件。 通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。 注意: Git其实只能跟踪⽂本⽂件的改动,⽐如TXT⽂件,⽹⻚,所有的程序代码…...
Milvus 向量数据库介绍及使用
一、Milvus 介绍及安装 Milvus 于 2019 年创建,其目标只有一个:存储、索引和管理由深度神经网络和其他机器学习 (ML) 模型生成的大量嵌入向量。它具备高可用、高性能、易拓展的特点,用于海量向量数据的实时召回。 作为专门为处理输入向量查…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
