Linux(ubuntu)下git / github/gitee使用
先附上git命令
linux@chenxiao:~$ cd Templates/
先进入一个目录,也可mkdir新建一个目录:用于接下来初始化为git可以管理的仓库
这个目录就是所说的工作目录,指当前正在进行开发的项目的本地目录。
linux@chenxiao:~/Templates$ git init
已初始化空的 Git 仓库于 /home/linux/Templates/.git/
1. 在终端输入 git init 初始化git仓库
linux@chenxiao:~/Templates$ ll -a
总用量 16
drwxr-xr-x 3 linux linux 4096 12月 29 10:13 ./
drwxr-xr-x 38 linux linux 4096 12月 29 10:12 ../
drwxrwxr-x 7 linux linux 4096 12月 29 10:13 .git/
终端输入 ll- a查看一下隐藏文件,发现新产生一个 .git/文件。.git就是我们所说的本地仓库(版本库)
本地仓库是 Git 用来存储项目历史记录和版本信息的地方。它是存储在工作目录下的一个隐藏目录(.git文件夹)。仓库包含了项目的历史提交记录、分支、标签等重要信息。
远程仓库:远程仓库是位于远程服务器上的存储库,用于备份、协作和共享代码。常见的远程仓库托管服务包括 GitHub、GitLab 和 Bitbucket。你可以使用 git remote add
命令将本地仓库与远程仓库关联,并使用 git push
命令将本地仓库的代码推送到远程仓库中(文章末尾会有介绍)
linux@chenxiao:~/Templates$ vim test12-29.cpp
创建一个新文件 test12-29.cpp 随意写点数据进去
linux@chenxiao:~/Templates$ git add test12-29.cpp
2. 终端输入 git add test12-29.cpp 将文件更改添加到 Git 的暂存区 -A选项可全部添加
linux@chenxiao:~/Templates$ git commit -m "first commit"
[master (根提交) 5bb74d1] first commit1 file changed, 6 insertions(+)create mode 100644 test12-29.cpp
3. 输入 git commit -m " " 它用于将更改提交到本地仓库(注释内容随便写,一般写我们本次提交的目的,修改了哪里) 根提交就是第一次初始提交
linux@chenxiao:~/Templates$ git status
位于分支 master
无文件要提交,干净的工作区
4. 输入 git status 查看当前分支的状态,这将显示您当前工作目录与仓库的差异,例如哪些文件已被修改、哪些文件已被添加到暂存区、哪些文件已被删除等等。
上述的输出代表 :目前没有进行任何修改或添加操作,或者所有的修改和添加操作都已经成功提交到本地仓库中了。
linux@chenxiao:~/Templates$ vim test12-29.cpp
接下来修改下 test12-29.cpp文件。vim打开文件后,随便改动下内容。
linux@chenxiao:~/Templates$ git status
位于分支 master
尚未暂存以备提交的变更:(使用 "git add <文件>..." 更新要提交的内容)(使用 "git restore <文件>..." 丢弃工作区的改动)修改: test12-29.cpp修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
修改之后再查看状态。输出信息表示:文件已经被修改过,但是还没有被添加到暂存区中用于下一次提交。想要再次提交,就要先 git add 先把改动的文件添加到暂存区。然后再使用 git commit
命令将更改提交到本地仓库中
linux@chenxiao:~/Templates$ git add test12-29.cpp
linux@chenxiao:~/Templates$ git status
位于分支 master
要提交的变更:(使用 "git restore --staged <文件>..." 以取消暂存)修改: test12-29.cpp
添加暂存区后再git status查看下状态,输出信息显示当前分支是 master
,并且工作区的 test12-29.cpp
文件已经被修改且已添加到暂存区中,可以进行下一次提交。
linux@chenxiao:~/Templates$ git commit -m "second commit"
[master 0d125d6] second commit1 file changed, 2 insertions(+), 1 deletion(-)
接下来就可以用 git commit -m 进行提交:提交信息显示了提交的哈希值(0d125d6)、修改了的文件数目以及插入和删除的行数。
linux@chenxiao:~/Templates$ git status
位于分支 master
无文件要提交,干净的工作区
再次查看状态,显示干净的工作区。
linux@chenxiao:~/Templates$ git log
commit 0d125d65e3b506f0cd0eb787c3dfbbf841947899 (HEAD -> master)
Author: chenxiao <925678073@qq.com>
Date: Fri Dec 29 11:02:49 2023 +0800second commitcommit 5bb74d1951d5bd7dc7ecf6afe4ffee18d882fb90
Author: chenxiao <925678073@qq.com>
Date: Fri Dec 29 10:41:00 2023 +0800first commit
5. 版本穿越 先使用 git log
命令可以查看项目的提交历史。每个提交记录包含一些关键信息,包括提交的哈希值、作者、日期和提交消息,还可以加上--pretty=oneline
参数得到如下输出
linux@chenxiao:~/Templates$ git log --pretty=oneline
0d125d65e3b506f0cd0eb787c3dfbbf841947899 (HEAD -> master) second commit
5bb74d1951d5bd7dc7ecf6afe4ffee18d882fb90 first commit
还可以用git reflog查看 ,这里不演示了,自己敲一下就知道了
使用git reset
命令,将版本回退:在使用 git reset
命令时,您需要提供一个有效的提交(commit)标识符或引用,如提交的哈希值、分支名或标签名。例如下面的 --hard HEAD^表示返回啥哪个一次提交的位置。--hard
选项时,请注意,您将不可恢复地丢失之前对代码所做的更改
linux@chenxiao:~/Templates$ git reset --hard HEAD^
HEAD 现在位于 5bb74d1 first commit
一般使用 git reset --hard 版本号 穿越到指定版本。
再次 git reflog 查看一下,发现moving to 49aa20a 说明移动了. 此时文件内容为这次提交的内容。
注:HEAD 是一个指向当前所在分支的指针,git版本控制的本质就是指针
git 分支
1.查看分支 git branch -v
linux@chenxiao:~/Templates$ git branch -v
* master 49278f6 第二次提交
2.创建分支 git branch chenxiaobranch 其中chenxiaobranch是自己起的分支名
linux@chenxiao:~/Templates$ git branch chenxiaobranch
3.切换分支 git checkout chenxiaobranch
linux@chenxiao:~/Templates$ git branch -vchenxiaobranch 49278f6 第二次提交
* master 49278f6 第二次提交
linux@chenxiao:~/Templates$ git checkout chenxiaobranch
切换到分支 'chenxiaobranch'
linux@chenxiao:~/Templates$ git branch -v
* chenxiaobranch 49278f6 第二次提交master 49278f6 第二次提交
切换分支后,注意 * 的位置,代表位于当前分支
4.合并分支
合并前先在chenxiaobranch分支下对文件进行修改。修改之后与master合并
linux@chenxiao:~/Templates$ git checkout master
切换到分支 'master'
linux@chenxiao:~/Templates$ git merge chenxiaobranch
更新 49278f6..3d5a58e
Fast-forwardgit.cpp | 1 +1 file changed, 1 insertion(+)
合并冲突:如果两个分支都对某个文件同位置进行了修改,并且都把修改commit提交到了本地
合并后会出现冲突。需要人为决定使用哪个为新代码内容
nux@chenxiao:~/Templates$ git merge chenxiaobranch
自动合并 git.cpp
冲突(内容):合并冲突于 git.cpp
自动合并失败,修正冲突然后提交修正的结果。
如何推送到github 远程仓库呢???前提是前面add commit 等命令都执行完。
使用 SSH 协议进行推送 ,在终端依次输入如下命令
1.git remote set-url origin git@github.com:xovt/MyRepository 本地仓库与远程仓库关联
origin
是远程仓库的名称 xovt/MyRepository 代表 git账户名/存储库名
在github中这里新建存储库
进入自己的存储库,点击绿色的code 就能看到SSH的连接地址。也可像我那样手动添加。
我是写的这个,两个都一样。区别就是后者多了.git
2.git push origin master 将本地分支的提交推送到远程仓库。origin
是远程仓库的名称,master
是要推送的本地分支 。 执行这个命令后本地提交就推送到GitHub的仓库了,这里我自己的GitHub仓库设置的就是 xovt/MyRepository
3.克隆(下载)git clone 存储库的路径(本次我用的是点击上图绿色Code的路径)
linux@chenxiao:~/Templates$ git clone git@github.com:xovt/MyRepository.git
正克隆到 'MyRepository'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 8 (delta 1), reused 8 (delta 1), pack-reused 0
接收对象中: 100% (8/8), 24.65 MiB | 3.41 MiB/s, 完成.
处理 delta 中: 100% (1/1), 完成.
linux@chenxiao:~/Templates$ ls
git.cpp MyRepository
克隆成功,查看在输入克隆命令的目录下下载,并自动创建与存储库同名的目录,包含所有文件
gitee
gitee 也是一个道理
git remote add _origin git@gitee.com:chenxiaoubuntu/onboard.git
git push _origin cxbranch
-
本地分支:本地分支是在本地仓库中创建的代码分支。您可以在本地仓库中创建和切换不同的分支来独立开发和测试代码。通过使用本地分支,您可以同时进行多个任务或实验,而不会影响主分支或其他分支的稳定性。
- 创建本地分支:使用
git branch <branch-name>
命令创建一个新的本地分支。 - 切换到本地分支:使用
git checkout <branch-name>
命令切换到指定的本地分支。 - 查看本地分支:使用
git branch
命令查看本地仓库中的所有分支。
- 创建本地分支:使用
-
远程分支:远程分支是存储在远程仓库中的代码分支。远程分支通常与团队成员共享,用于协同开发和代码集成。您可以将本地分支与远程分支进行跟踪,以便将本地的变更推送到远程仓库或者从远程仓库拉取最新的变更。
- 查看远程分支:使用
git branch -r
或git branch -a
命令查看远程仓库中的分支列表。 - 将本地分支推送到远程仓库:使用
git push <remote-name> <local-branch-name>
命令将本地分支推送到指定的远程仓库。 - 从远程仓库拉取最新的变更:使用
git pull <remote-name> <remote-branch-name>
命令从指定的远程仓库拉取最新的变更到本地分支。
- 查看远程分支:使用
相关文章:

Linux(ubuntu)下git / github/gitee使用
先附上git命令 linuxchenxiao:~$ cd Templates/ 先进入一个目录,也可mkdir新建一个目录:用于接下来初始化为git可以管理的仓库 这个目录就是所说的工作目录,指当前正在进行开发的项目的本地目录。 linuxchenxiao:~/Templates$ git init 已…...

回归预测 | MATLAB实OOA-LSTM基于鱼鹰优化算法优化长短期记忆网络的多输入单输出数据回归预测模型 (多指标,多图)
回归预测 | MATLAB实OOA-LSTM基于鱼鹰优化算法优化长短期记忆网络的多输入单输出数据回归预测模型 (多指标,多图) 目录 回归预测 | MATLAB实OOA-LSTM基于鱼鹰优化算法优化长短期记忆网络的多输入单输出数据回归预测模型 (多指标&a…...

2023年工作初体验
23年终于正式入职,参与了正式上线的电商平台、crm平台等项目的研发,公司规模较小,气氛融洽,没有任何勾心斗角、末位淘汰,几乎没什么压力。虽然是我的第一家公司,但实际是个适合养老的公司(笑 总…...

PostgreSQL 作为向量数据库:入门和扩展
PostgreSQL 拥有丰富的扩展和解决方案生态系统,使我们能够将该数据库用于通用人工智能应用程序。本指南将引导您完成使用 PostgreSQL 作为向量数据库构建生成式 AI 应用程序所需的步骤。 我们将从pgvector 扩展开始,它使 Postgres 具有特定于向量数据库…...

亚信安慧AntDB数据库:企业核心业务系统数据库升级改造的可靠之选
在近期召开的“2023年国有企业应用场景发布会”上,亚信安慧公司的核心数据库产品AntDB闪耀登场,技术总监北陌先生针对企业核心业务系统数据库升级改造的关键议题发表了深度分享。他从研发、工程实施和运维管理三个维度细致剖析了当前企业在进行数据库升级…...

CommonJS 和 ES6 Module:一场模块规范的对决(上)
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...

python快速实现简易电子音乐盒(电子钢琴)
首先第一步附上完整源码(基于pygame库) import pygame# 初始化pygame pygame.init()# 设置窗口大小 window_size (800, 600) screen pygame.display.set_mode(window_size)# 加载音频文件 C4 pygame.mixer.Sound("test1/C4.wav") D4 pyga…...

详解bookkeeper AutoRecovery机制
引言小故事 张三在一家小型互联网公司上班,由于公司实行的996,因此经常有同事“不辞而别”,为了工作的正常推进,团队内达成了某种默契,这种默契就是通过某个规则来选出一个同事,这个同事除了工作之余还有额…...
使用 Ubuntu 20.04 进行初始服务器设置
前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 使用 Ubuntu 20.04 进行初始服务器设置 介绍 首次创建新的 Ubuntu 20.04 服务器时,应该执行一些重…...
【SpringCloud】6、Spring Cloud Gateway路由配置
在 Spring Cloud Gateway 中配置 uri 有三种方式,包括: 1、WebSocket路由 spring:cloud:gateway:routes:- id: bt-apiuri: ws://localhost:9090/predicates:...

pdf转换成word怎么转?一篇文章教你轻松搞定
pdf转换成word怎么转?你是否曾经遇到过需要将PDF文件转换成Word格式的情况?比如,你需要编辑一个文档,或者想将一些电子书或报告复制到Word中以便于编辑或重新排版。在这种情况下,如何将PDF文件转换成Word格式呢&#x…...

【中南林业科技大学】计算机组成原理复习包括题目讲解(超详细)
来都来了点个赞收藏关注一下再走呗🌹🌹🌹🌹 第1章:绪论 1.冯诺依曼机特点,与现代计算机的区别 冯诺依曼计算机的基本思想是:程序和数据以二进制形式表示,存储程序控制。在计算机中&…...

恭喜 Databend 上榜 2023 开源创新榜「优秀开源项目 」
近日,国家科技传播中心见证了一场开源界的重要事件:由中国科协科学技术传播中心、中国计算机学会、中国通信学会和中国科学院软件研究所联合主办,CSDN 承办的 2023 年开源创新榜专家评审会圆满落幕。由王怀民院士担任评委会主任,评…...

网络连通性批量检测工具
一、背景介绍 企业网络安全防护中,都会要求配置物理网络防火墙以及主机防火墙,加强对网络安全的防护。云改数转之际,多系统上云过程中都会申请开通大量各类网络配置,针对这些复杂且庞大的网络策略开通配置,那么在网络配…...

2023高级人工智能期末总结
1、人工智能概念的一般描述 人工智能是那些与人的思维相关的活动,诸如决策、问题求解和学习等的自动化; 人工智能是一种计算机能够思维,使机器具有智力的激动人心的新尝试; 人工智能是研究如何让计算机做现阶段只有人才能做得好的…...
Oracle数据库迁移所有文件到新挂载磁盘路径
主要步骤: 1、停掉服务, 2、关闭数据库shutdown immediate 3、移动数据文件到新的位置。 4、启动到mount状态,如果也移动了ctl,需要启动到nomount下,生成参数文件。 5、alter database rename 文件名 to 新位置&a…...

基于YOLOv7算法的高精度实时安全背心目标检测识别系统(PyTorch+Pyside6+YOLOv7)
摘要:基于YOLOv7算法的高精度实时安全背心目标检测系统可用于日常生活中检测与定位安全背心,此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别,同时本系统还支持检测结果可视化与导出。本系统采用YOLOv7目标检测算法来训…...

Mac——VsCode使用格式化工具进行整理和格式化
1. 打开VSCode编辑器。 2. 点击左下角⚙️图标,打开设置 3. 进入设置后,你会看到一个搜索框,在搜索框中输入 format on save 来查找相关设置项。 4. 在设置列表中找到 Editor: Format On Save 选项,勾选它以启用在保存文件时自动格…...

73.乐理基础-打拍子-还原号、临时变音记号在简谱中的规则
上一个内容:72.乐理基础-打拍子-加延音线的节奏型-CSDN博客 下图中1-13,就是四几拍中所有可能出现的节奏型,以及它们的组合方式,需要练习,可以买一本视唱书去练习,搜乐谱练习,自己写节奏型根据…...

一款超酷的一体化网站测试工具:Web-Check
Web-Check 是一款功能强大的一体化工具,用于发现网站/主机的相关信息。用于检查网页的工具,用于确保网页的正确性和可访问性。它可以帮助开发人员和网站管理员检测网页中的错误和问题,并提供修复建议。 它只需要输入一个网站就可以查看一个网…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...