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

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


  1. 本地分支:本地分支是在本地仓库中创建的代码分支。您可以在本地仓库中创建和切换不同的分支来独立开发和测试代码。通过使用本地分支,您可以同时进行多个任务或实验,而不会影响主分支或其他分支的稳定性。

    • 创建本地分支:使用 git branch <branch-name> 命令创建一个新的本地分支。
    • 切换到本地分支:使用 git checkout <branch-name> 命令切换到指定的本地分支。
    • 查看本地分支:使用 git branch 命令查看本地仓库中的所有分支。
  2. 远程分支:远程分支是存储在远程仓库中的代码分支。远程分支通常与团队成员共享,用于协同开发和代码集成。您可以将本地分支与远程分支进行跟踪,以便将本地的变更推送到远程仓库或者从远程仓库拉取最新的变更。

    • 查看远程分支:使用 git branch -rgit 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/ 先进入一个目录&#xff0c;也可mkdir新建一个目录&#xff1a;用于接下来初始化为git可以管理的仓库 这个目录就是所说的工作目录&#xff0c;指当前正在进行开发的项目的本地目录。 linuxchenxiao:~/Templates$ git init 已…...

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

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

2023年工作初体验

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

PostgreSQL 作为向量数据库:入门和扩展

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

亚信安慧AntDB数据库:企业核心业务系统数据库升级改造的可靠之选

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

CommonJS 和 ES6 Module:一场模块规范的对决(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

python快速实现简易电子音乐盒(电子钢琴)

首先第一步附上完整源码&#xff08;基于pygame库&#xff09; 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机制

引言小故事 张三在一家小型互联网公司上班&#xff0c;由于公司实行的996&#xff0c;因此经常有同事“不辞而别”&#xff0c;为了工作的正常推进&#xff0c;团队内达成了某种默契&#xff0c;这种默契就是通过某个规则来选出一个同事&#xff0c;这个同事除了工作之余还有额…...

使用 Ubuntu 20.04 进行初始服务器设置

前些天发现了一个人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;最重要的屌图甚多&#xff0c;忍不住分享一下给大家。点击跳转到网站。 使用 Ubuntu 20.04 进行初始服务器设置 介绍 首次创建新的 Ubuntu 20.04 服务器时&#xff0c;应该执行一些重…...

【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怎么转&#xff1f;你是否曾经遇到过需要将PDF文件转换成Word格式的情况&#xff1f;比如&#xff0c;你需要编辑一个文档&#xff0c;或者想将一些电子书或报告复制到Word中以便于编辑或重新排版。在这种情况下&#xff0c;如何将PDF文件转换成Word格式呢&#x…...

【中南林业科技大学】计算机组成原理复习包括题目讲解(超详细)

来都来了点个赞收藏关注一下再走呗&#x1f339;&#x1f339;&#x1f339;&#x1f339; 第1章&#xff1a;绪论 1.冯诺依曼机特点&#xff0c;与现代计算机的区别 冯诺依曼计算机的基本思想是&#xff1a;程序和数据以二进制形式表示&#xff0c;存储程序控制。在计算机中&…...

恭喜 Databend 上榜 2023 开源创新榜「优秀开源项目 」

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

网络连通性批量检测工具

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

2023高级人工智能期末总结

1、人工智能概念的一般描述 人工智能是那些与人的思维相关的活动&#xff0c;诸如决策、问题求解和学习等的自动化&#xff1b; 人工智能是一种计算机能够思维&#xff0c;使机器具有智力的激动人心的新尝试&#xff1b; 人工智能是研究如何让计算机做现阶段只有人才能做得好的…...

Oracle数据库迁移所有文件到新挂载磁盘路径

主要步骤&#xff1a; 1、停掉服务&#xff0c; 2、关闭数据库shutdown immediate 3、移动数据文件到新的位置。 4、启动到mount状态&#xff0c;如果也移动了ctl&#xff0c;需要启动到nomount下&#xff0c;生成参数文件。 5、alter database rename 文件名 to 新位置&a…...

基于YOLOv7算法的高精度实时安全背心目标检测识别系统(PyTorch+Pyside6+YOLOv7)

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

Mac——VsCode使用格式化工具进行整理和格式化

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

73.乐理基础-打拍子-还原号、临时变音记号在简谱中的规则

上一个内容&#xff1a;72.乐理基础-打拍子-加延音线的节奏型-CSDN博客 下图中1-13&#xff0c;就是四几拍中所有可能出现的节奏型&#xff0c;以及它们的组合方式&#xff0c;需要练习&#xff0c;可以买一本视唱书去练习&#xff0c;搜乐谱练习&#xff0c;自己写节奏型根据…...

一款超酷的一体化网站测试工具:Web-Check

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

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

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

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

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...