当前位置: 首页 > news >正文

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仓库

  1. 在GitHub的首页或任意页面,点击右上角的"+“,然后选择"New repository”。
  2. 填写仓库的基本信息:
    • Repository name:仓库名称。
    • Description(可选):仓库描述。
    • Visibility:选择仓库的可见性(公开或私有)。
    • 根据需要选择其他选项,如初始化README文件、添加.gitignore或选择许可证。
  3. 点击"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. 初始化本地项目目录

在本地项目目录中打开终端或命令提示符,执行以下命令:

  1. 初始化Git仓库

    git init
    

    这将在项目目录中创建一个新的git仓库。

  2. 添加文件到Git仓库
    首先,可以使用git add命令来添加文件到仓库中,例如:

    git add .
    

    这个命令会添加当前目录下的所有文件到仓库中。如果只想添加特定文件,可以将.替换为具体的文件名。

  3. 提交更改
    使用以下命令来提交这些更改到仓库:

    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 addgit commitgit push步骤。

上传本地项目到GitHub时发生冲突

将默认分支名称从master改为main

将默认分支名称从master改为main,可以按照以下步骤操作:

  1. 全局更改默认分支名称(可选):

    git config --global init.defaultBranch main
    
  2. 更改当前仓库的分支名称

    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 层次遍历简介 广度优先在面试里出现的频率非常高&#xff0c;整体属于简单题。广度优先又叫层次遍历&#xff0c;基本过程如下&#xff1a; 层次遍历就是从根节点开始&#xff0c;先访问根节点下面一层全部元素&#xff0c;再访问之后…...

SQLiteC/C++接口详细介绍sqlite3_stmt类(十二)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;十一&#xff09; 下一篇&#xff1a; SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;十三&#xff09; 48、sqlite3_stmt_isexplain sqlite3_stmt_is…...

大模型时代如何做安全?

现在应该没人怀疑AI时代的到来了吧&#xff0c;在HUB上每天100的新的预训练模型产生&#xff0c;不夸张的说的&#xff0c;现在稍微有点计算机基础的人都可以训练自己的模型了。 说远了&#xff0c;还是说说那些不争气的安全厂商吧。为啥只说安全厂商&#xff1f;因为国内还是…...

新型储能是什么,储能系统解决方案现状及趋势详细说明

新型储能是指新兴的能够存储电能并在需要时释放的储能技术。其中主要包括光伏储能和商业储能。 光伏储能是指通过光伏电池将太阳能转化为电能&#xff0c;并将其存储起来以供后续使用。光伏储能系统一般由太阳能电池板、储能装置和逆变器组成。光伏储能可以将白天产生的电能存…...

掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)

在Go语言中&#xff0c;字典通常指的是map类型&#xff0c;它是一种用于存储键值对的数据结构。字典在Go中非常常见&#xff0c;是一种高效的数据结构&#xff0c;用于快速查找和检索数据。 字典的详细使用方法 创建字典 可以使用make函数来创建字典&#xff0c;并指定键值对…...

Flutter-仿携程首页类型切换

效果 唠叨 闲来无事&#xff0c;不小心下载了携程app&#xff0c;还幻想可以去旅游一番&#xff0c;奈何自己运气不好&#xff0c;自从高考时第一次吹空调导致自己拉肚子考试&#xff0c;物理&#xff0c;数学考了一半就交卷&#xff0c;英语2B铅笔除了问题&#xff0c;导致原…...

C语言 自定义类型:结构体

目录 前言 一、结构体类型 1.1 结构体的声明 1.2 结构体变量的创建和初始化 1.3 结构体的特殊声明 1.4 结构体的自引用 二、结构体的对齐 2.1 对齐规则 2.2 内存对齐的原因 2.3 修改默认对齐数 2.4 结构体传参 三、结构体实现位段 3.1 位段的内存分配 3.2 段的跨平…...

计算机网络拓扑结构

目录 <网络拓扑结构概念> <典型的拓扑结构介绍> 第一种&#xff0c;总线型网络拓扑结构 第二种&#xff0c;星型网络拓扑结构 第三种&#xff0c;树型网络拓扑结构 第四种&#xff0c;环型网络拓扑结构 第五种&#xff0c;网状型网络拓扑结构 第六种&#…...

FPGA通过I2C控制AT24C64

文章目录 前言一、代码设计框图二、IIC_drive模块设计2.1、模块接口&#xff1a;2.2、代码功能描述&#xff1a;2.3、IIC协议实现过程&#xff1a; 三、EEPROM_ctrl模块设计3.1、模块接口&#xff1a;3.2、代码功能描述 四、EEPROM_drive模块五、iic_top模块 前言 继上一篇FPG…...

134. 加油站(力扣LeetCode)

文章目录 134. 加油站题目描述暴力枚举&#xff08;超时&#xff09;代码一代码二&#xff08;优化&#xff09; 贪心算法方法一方法二 134. 加油站 题目描述 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&…...

XSKY 智能存储,助力“数据要素 X”先进制造

3 月 21-22 日&#xff0c;主题为“突破 智行”的 IMC2024 第七届中国智造数字科技峰会在重庆召开。作为在先进制造领域拥有领先存储解决方案以及众多应用实践的企业&#xff0c;星辰天合受邀参加了此次峰会并荣获大会颁发的“最佳存储解决方案奖”。同时&#xff0c;星辰天合先…...

数据挖掘与分析学习笔记

一、Numpy NumPy&#xff08;Numerical Python&#xff09;是一种开源的Python库&#xff0c;专注于数值计算和处理多维数组。它是Python数据科学和机器学习生态系统的基础工具包之一&#xff0c;因为它高效地实现了向量化计算&#xff0c;并提供了对大型多维数组和矩阵的支持…...

linux docker镜像初始化

linux docker镜像初始化 简介 有的镜像内部使用的linux系统特别精简&#xff0c;许多常用命令无法安装&#xff0c;导致排查问题较为困难。 可以使用cat /etc/os-release查看容器使用的linux版本&#xff0c;再进行一些常用操作的初始化。 Debian # 设置镜像源 RUN rm -f /…...

专业140+总分410+南京大学851信号与系统考研经验南大电子信息与通信集成,电通,真题,大纲,参考书。

今年分数出来还是有点小激动&#xff0c;专业851信号与系统140&#xff08;感谢Jenny老师辅导和全程悉心指导&#xff0c;答疑&#xff09;&#xff0c;总分410&#xff0c;梦想的南大离自己越来越近&#xff0c;马上即将复试&#xff0c;心中慌的一p&#xff0c;闲暇之余&…...

. ./ bash dash source 这五种执行shell脚本方式 区别

实际上,., ./, bash, dash, source 是五种不同的方式来执行 shell 脚本,它们之间有一些区别。 .(点号)或 source 命令:这两个命令是等价的,它们都是 Bash shell 内置的命令。它们用于在当前 shell 环境中执行脚本。当使用 . script.sh 或 source script.sh 命令来执行脚本…...

【React 】React 性能优化的手段有哪些?

1. 是什么 React凭借virtual DOM和diff算法拥有高效的性能&#xff0c;但是某些情况下&#xff0c;性能明显可以进一步提高 在前面文章中&#xff0c;我们了解到类组件通过调用setState方法&#xff0c;就会导致render ,父组件一旦发生render渲染&#xff0c;子组件一定也会执…...

3.22网络编程小项目

基于UDP的网络聊天室 项目需求&#xff1a; 如果有用户登录&#xff0c;其他用户可以收到这个人的登录信息如果有人发送信息&#xff0c;其他用户可以收到这个人的群聊信息如果有人下线&#xff0c;其他用户可以收到这个人的下线信息服务器可以发送系统信息 服务器 #includ…...

Git原理及使用

1、Git初识 Git是一种版本控制器: 对于同一份文件,做多次改动,Git会记录每一次改动前后的文件。 通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。 注意: Git其实只能跟踪⽂本⽂件的改动,⽐如TXT⽂件,⽹⻚,所有的程序代码…...

Milvus 向量数据库介绍及使用

一、Milvus 介绍及安装 Milvus 于 2019 年创建&#xff0c;其目标只有一个&#xff1a;存储、索引和管理由深度神经网络和其他机器学习 (ML) 模型生成的大量嵌入向量。它具备高可用、高性能、易拓展的特点&#xff0c;用于海量向量数据的实时召回。 作为专门为处理输入向量查…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...