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

Git使用基础总结(从小白到新手版)

  • (꒪ꇴ꒪ ),Hello我是祐言QAQ
  • 我的博客主页:C/C++语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍
  • 快上🚘,一起学习,让我们成为一个强大的攻城狮!
  • 送给自己和读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!
  • 作者水平很有限,如果发现错误,请在评论区指正,感谢🙏

目录

一、 介绍

1. 什么是Git

2.安装Git(已装请跳过)

3. 配置Git(可跳过但还是得填)

二、Git的基本使用

1. 创建新仓库

        (1)自己创建

        (2)直接 clone

2. 肆无忌惮修改环节

3. 提交更改

        (1)初始化仓库,使用 git init 命令

        (2)将当前目录下所有的修改或新增的文件添加到暂存区

        (3)提交更改

三、将代码上传至远程仓库Gitlab

1.建立本地仓库和远程仓库关系并推送

2. 本地内容上传至远程仓库

3. 提交和推送的区别

        (1)提交修改 git commit

        (2)推送更改 git push

四、关于分支管理和解决冲突

1. 分支管理

2. 解决冲突

        报 fatal:remote origin already exists

📢写在最后

一、 介绍

1. 什么是Git

        Git是一个分布式版本控制系统,由Linus Torvalds在2005年创建。它旨在追踪文件和目录的变化,并且支持多人协同工作。Git的设计目标包括速度、简单性、非线性开发(可以同时进行多个分支的工作)以及对大型项目的支持。Git是一个强大而灵活的版本控制系统,它在团队协作和个人项目管理中都有广泛的应用。通过熟练使用Git,你可以更有效地追踪项目历史、协同工作和管理代码。

2.安装Git(已装请跳过)

        首先,你需要安装Git,打开浏览器手动搜索git(不要用百度,都是广告,我这里用的Bing)

        当然你也你可以在这里直达(选择64-bit for Windows Setup),然后下载安装包,同意不pd条约,就安装完成了:Git - Downloading Package (git-scm.com)

        安装完成后,直接在桌面右键,当你看到里面有这两行,那么就安装完成了。

3. 配置Git(可跳过但还是得填)

        在开始使用Git之前,你需要配置用户信息,包括用户名和邮箱。这可以通过以下命令完成:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

二、Git的基本使用

1. 创建新仓库

        使用Git进行版本控制的第一步是初始化一个新仓库,并进入项目目录。       

        (1)自己创建

        首先我们在桌面右键后点击 Git Bash here   然后使用 cd 命令(基本的linux命令Linux终端介绍与常用shell命令35例-CSDN博客) 进入你想要存放代码的项目目录(我这里是在桌面新建的演示目录New)

        (2)直接 clone

        你也可以选择直接克隆而不是创建新的项目目录,使用git clone +目标地址,我这里选择的是opencv库作为演示地址(具体地址自行更换copy一下)。

git clone https://github.com/opencv/opencv.git

           等待期加载完成即可,我这里就不等了跳过。

2. 肆无忌惮修改环节

        当然,很多时候你们clone 的都是自己的代码,随意修改即可(vs code还是其他都好),直到你需要提交代码。

3. 提交更改

        (1)初始化仓库,使用 git init 命令
git init

        初始化完成后,本地文件会生成一个.git文件。

        (2)将当前目录下所有的修改或新增的文件添加到暂存区
git add .

        (3)提交更改

        Git通过提交来跟踪项目的更改。用于将暂存中的更改创建为一次提交,使用以下命令:

git commit -m '提交描述'

三、将代码上传至远程仓库Gitlab

1.建立本地仓库和远程仓库关系并推送

git remote add origin  http://ip地址+端口/路径/(项目名称).git 

        找到Gitlab上面http地址,克隆下来,把4492c9d4d2e9更改为指定的ip地址即可,当然如果你的地址不变还是要传回该地址,那么就直接copy就行,无需修改任何地方。

        然后需查看是否连接成功,使用 git remote -v 命令来查看:

gir remote -v   //检查

        如果有误则用 git remote rm origin,重新连接一下:

git remote rm origin   //重连

2. 本地内容上传至远程仓库

        如需先拉取远程仓库的master代码则先执行:

git pull --rebase origin master

        然后执行 git push -u origin master 命令:

git push -u origin master

        成功的话就可以在你的gitlab上看到了,运行界面大致如下,只要不报红色错误,基本都是成功。

3. 提交和推送的区别

        在Git中,提交修改(`git commit`)和推送更改(`git push`)是两个不同的操作,它们分别用于本地版本库和远程版本库。

        (1)提交修改 git commit

        ①本地操作:git commit 用于将当前工作目录中的修改提交到本地版本库。这个操作将你在工作目录中所做的更改创建为一个新的提交(commit)。

        ②提交消息:每次提交都需要附带一个提交消息,这个消息描述了你所做的修改的目的和内容。

        ③不影响远程仓库:git commit 操作只影响你本地的版本库,其他开发者在他们的本地版本库中不会看到你的提交。

        (2)推送更改 git push

        ①远程操作:git push 用于将本地的提交推送到远程版本库,通常是与共享仓库(比如GitHub、GitLab等)进行交互。这将你本地的提交同步到共享仓库中,以便其他开发者能够看到和获取这些更改。

        ②分支关联:在推送之前,通常你需要确保本地分支与远程分支关联。这可以通过 `git push -u origin <branch-name>` 命令来完成,其中 `<branch-name>` 是你的本地分支名。

        ③需要权限: 推送操作需要相应的权限。你必须有推送到远程仓库的权限,通常需要提供用户名和密码或者SSH密钥。

四、关于分支管理和解决冲突

1. 分支管理

        分支是Git强大功能之一,可以用于并行开发和功能测试。在Git中,分支(Branch)是指指向某个提交对象的可变指针,它允许你在代码库中的不同开发线路上工作。每个分支都是一个独立的指针,指向版本库中的某个特定提交。这使得你可以在不影响主要代码线路的情况下开展新的工作,实现并行开发、功能分支、bug修复等

        分支应用通常指的是在版本控制中应用(创建、切换、合并等)分支的一系列操作。下面是关于Git分支的一些常见操作
  • 创建分支:
    git branch <branch-name>

    这个命令用于创建一个名为 <branch-name> 的新分支。

  • 切换分支:
    git checkout <branch-name>

    或者

    git switch <branch-name>

    这个命令用于切换到指定的分支。

  • 创建并切换到新分支:
    git checkout -b <new-branch-name>

    这个命令用于创建并立即切换到一个新的分支。

  • 查看分支:
    git branch
    这个命令用于列出所有本地分支,当前分支会有一个 * 号标记。
     
  • 合并分支:
    git merge <branch-name>

        这个命令用于将指定分支的更改合并到当前分支。

  • 删除分支:
    git branch -d <branch-name>

    这个命令用于删除指定分支。请注意,要删除的分支不能是当前所在的分支。

  • 远程分支:
    git fetch origin
    git branch -r
    远程分支是指在远程仓库上的分支,可以通过这两个命令获取远程分支。

  • 推送分支:
    git push origin <branch-name>

    这个命令用于将本地分支推送到远程仓库。

        分支在Git中是一个强大的概念,它使得团队能够同时处理多个任务,同时保持对主要代码线路的稳定。分支应用是在这些分支上进行的各种操作,包括创建、切换、合并、删除等。

 

2. 解决冲突

        在合并分支或拉取更改时,可能会发生冲突。解决冲突的过程包括手动编辑文件以解决冲突并提交更改。

(1)报 fatal:remote origin already exists

        这个错误通常表示你在尝试添加远程仓库时,Git 已经存在名为 "origin" 的远程仓库。origin 是Git默认用来指代远程仓库的名称,通常与你的项目关联。

        如果你已经有了一个远程仓库,再次尝试添加 origin 将会导致这个错误。解决方法有两种:

①查看已有的远程仓库

        你可以先查看已有的远程仓库,确认是否已经存在名为 "origin" 的远程仓库。可以使用以下命令查看:

git remote -v

        如果已经存在 "origin",你可能不需要再次添加它。你可以直接使用已存在的远程仓库进行拉取和推送。

 ②修改已有的远程仓库

        如果你确实需要修改远程仓库,你可以使用以下命令来修改 origin 的URL:

git remote set-url origin <new-url>

        将 <new-url> 替换为新的远程仓库URL。这样可以更新 origin 的URL,而不会导致冲突。

请根据你的具体情况选择合适的方法。确保你了解项目当前的远程仓库设置,以便不会不小心覆盖或创建重复的远程仓库。

        更多C/C++语言Linux系统数据结构ARM板实战相关文章,关注专栏:

   手撕C语言

            玩转linux

                    脚踢数据结构

                            系统、网络编程

                                     探索C++

                                             6818(ARM)开发板实战

📢写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~
  • 🎉🎉🎉感谢关注🎉🎉🎉

相关文章:

Git使用基础总结(从小白到新手版)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…...

ck 配置 clickhouse-jdbc-bridge

背景 ck可以用过clickhouse-jdbc-bridge技术来直接访问各数据库&#xff0c;包括oracle&#xff0c;oracle也可以用jdbc&#xff0c;odbc没调研过 规划 jdbc-bridge是面向客户端的技术&#xff0c;也就是说&#xff0c;那个节点有客户端&#xff0c;哪个节点就需要&#xff…...

SpectralGPT: Spectral Foundation Model 论文翻译1

遥感领域的通用大模型 2023.11.13在CVPR发表 原文地址&#xff1a;[2311.07113] SpectralGPT: Spectral Foundation Model (arxiv.org) 摘要 ​ 基础模型最近引起了人们的极大关注&#xff0c;因为它有可能以一种自我监督的方式彻底改变视觉表征学习领域。虽然大多数基础模型…...

nuttx sim build

download nuttx: apache/nuttx: Apache NuttX is a mature, real-time embedded operating system (RTOS) (github.com) download genromfs https://github.com/chexum/genromfs make产生genromfs&#xff0c;复制到/usr/bin 编译nuttx&#xff1a; cd nuttx cmake -B b…...

c 语言中 unsigned int 类型的负数实际值大小

一 在c 语言中 unsigned int 类型的负数实际值大小 #include <stdio.h>int main() {int a 5;printf("a: %d\n", a);unsigned int b a - 10;printf("b: %d\n", b);printf("%d\n", b 4294967291); // unsigned int -5 4294967291retur…...

分块矩阵知识点整理:

1.分块方法&#xff1a;横竖线不能拐弯&#xff0c;思想为将矩阵分块看作向量计算 2.标准型 不一定是方的 特殊性&#xff1a;经过分块后会出现单位矩阵和0矩阵 3.分块矩阵的运算: 1.加减乘的运算与向量运算相同 4.分块矩阵求转置&#xff1a; 1.将子块看作普通元素求转置 2…...

elementPlus之home页面布局

可以根据自己喜欢的格式选择 现在 header 部分 Aside 部分 Main部分 加上背景色以及命名 <template><div class="common-layout"><el-container><el-header class="homeHeader"><div class="headerTitle">Dev…...

【数据结构】用C语言实现顺序栈(附完整运行代码)

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 一.了解项目功能 在本次项目中我们的目标是实现一个顺序栈: 该顺序栈使用动态内存分配空间,可以用来存储任意数量的同类型数据. 顺序栈结构体需要包含三个要素:存放数据的数组…...

鸿蒙(HarmonyOS)应用开发——生命周期、渲染控制、状态管理装饰器

生命周期 任何程序都是有一定的生命周期的。生命周期是记录从产生到销毁的过程&#xff1b;如果熟悉前端vue.js的话&#xff0c;就可以很好的理解生命周期。 自定义组件生命周期 ArkTS中&#xff0c;自定义组件提供了两个生命周期函数&#xff1a;aboutToAppear() 和aboutTo…...

yarn:无法加载文件 C:\Users\***\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本

原因&#xff1a;PowerShell 脚本的执行有着严格的安全策略限制&#xff01; 解决方案&#xff1a;管理员身份启动Windows PowerShell 在命令行中输入set-ExecutionPolicy RemoteSigned 再使用yarn就可以了...

精彩预告 | OpenHarmony即将亮相MTSC 2023

MTSC 2023 第12届中国互联网测试开发大会&#xff08;深圳站&#xff09;即将于2023年11月25日&#xff0c;在深圳登喜路国际大酒店举办&#xff0c;大会将以“1个主会场4个平行分会场”的形式呈现&#xff0c;聚集一众顶尖技术专家和行业领袖&#xff0c;围绕如今备受关注的行…...

无线WiFi安全渗透与攻防(国外篇):使用 Aircrack-ng 破解 WEP 密码

使用 Aircrack-ng 破解 WEP 密码 使用 Aircrack-ng 破解 WEP 密码一. 用 Aircrack-ng 破解 WEP 密码 - 背景知识网卡与网卡芯片WEP 加密协议WEP 所使用的身份认证协议二. 使用 Aircrack-ng 破解 WEP 密码 - 破解原理破解机理三. 使用 Aircrack-ng 破解 WEP 密码 - aircrack-ng …...

广告机/商业显示屏_基于MT8788安卓主板方案

安卓主板在广告机领域扮演着重要的角色。无论是在商场、车站、酒店、电梯、机场还是高铁站&#xff0c;LED广告机广泛应用&#xff0c;并通过不同方式进行播放和管理。 广告机/商业显示屏_基于MT8788安卓主板方案 基于MT8788安卓主板方案的广告机采用了联发科MT8788八核芯片方案…...

字符串转换成十进制整数

编程要求 输入一个以#结束的字符串&#xff0c;本题要求滤去所有的非十六进制字符&#xff08;不分大小写&#xff09;&#xff0c;组成一个新的表示十六进制数字的字符串&#xff0c;然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”&#xff0c;则…...

面向对象高级---接口

接口 概念:接口就是一种公共的规范标准,只要符合规范,大家都可以通用 java中接口存在的两个意义 用来定义规范用来做功能的扩展 接口的特点 接口用关键字interface修饰 public interface 接口名{}类实现接口用implements表示 public class 类名 implements 接口名{}接口…...

轻松入门自然语言处理系列 项目3 基于Linear-CRF的医疗实体识别

文章目录 前言一、项目概况1.项目描述2.数据描述3.项目框架二、核心技术1.实体识别数据标注2.文本特征工程3.CRF模型4.BiLSTM-CRF模型三、项目实施1.读取数据2.数据标注3.文本特征工程4.模型训练5.模型评估6.BiLSTM-CRF总结前言 本文主要介绍了以Linear-CRF为基础模型进行医疗…...

批量按顺序1、2、3...重命名所有文件夹里的文件

最新&#xff1a; 最快方法&#xff1a;先用这个教程http://文件重命名1,2......nhttps://jingyan.baidu.com/article/495ba841281b7079b20ede2c.html再用这个教程去空格&#xff1a;利用批处理去掉文件名中的空格-百度经验 (baidu.com) 以下为原回答 注意文件名有空格会失败…...

你知道吗,这些行业的人也是工程师哦

止这些&#xff0c;其工作涉及多种领域&#xff0c;也就是说&#xff0c;有很多细分行业的开发人员也算是电子工程师&#xff0c;下面我们来看看有哪些电子工程师&#xff01; 1、应用电子工程师 主要负责将电子技术与特定应用相结合&#xff0c;设计并开发满足特定需求的电子…...

1.6 C语言之数组概述

1.6 C语言之数组概述 一、数组二、练习 一、数组 所谓数组&#xff0c;就是内存中一片连续的空间&#xff0c;可以用来存储一组同类型的数据 数组有下标&#xff0c;从0开始&#xff0c;可以理解为是给数组中的元素编号&#xff0c;便于后续寻址访问 我们来编写一个程序&…...

论文阅读_生成式Agent

英文名称: Generative Agents: Interactive Simulacra of Human Behavior 中文名称: 生成代理&#xff1a;**人类行为的交互式模拟** 文章: http://arxiv.org/abs/2304.03442 代码: https://github.com/joonspk-research/generative_agents 作者: Joon Sung Park 机构: 斯坦福大…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...

【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析

1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器&#xff08;TI&#xff09;推出的一款 汽车级同步降压转换器&#xff08;DC-DC开关稳压器&#xff09;&#xff0c;属于高性能电源管理芯片。核心特性包括&#xff1a; 输入电压范围&#xff1a;2.95V–6V&#xff0c;输…...

SQL注入篇-sqlmap的配置和使用

在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap&#xff0c;但是由于很多朋友看不了解命令行格式&#xff0c;所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习&#xff0c;链接&#xff1a;https://wwhc.lanzoue.com/ifJY32ybh6vc…...

验证redis数据结构

一、功能验证 1.验证redis的数据结构&#xff08;如字符串、列表、哈希、集合、有序集合等&#xff09;是否按照预期工作。 2、常见的数据结构验证方法&#xff1a; ①字符串&#xff08;string&#xff09; 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...

StarRocks 全面向量化执行引擎深度解析

StarRocks 全面向量化执行引擎深度解析 StarRocks 的向量化执行引擎是其高性能的核心设计&#xff0c;相比传统行式处理引擎&#xff08;如MySQL&#xff09;&#xff0c;性能可提升 5-10倍。以下是分层拆解&#xff1a; 1. 向量化 vs 传统行式处理 维度行式处理向量化处理数…...