当前位置: 首页 > 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;用于海量向量数据的实时召回。 作为专门为处理输入向量查…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...