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就是我们所说的本地仓库(版本库)

仓库(Repository)是 Git 用来存储项目历史记录和版本信息的地方。它是存储在工作目录之外的一个隐藏目录(.git文件夹)。仓库包含了项目的历史提交记录、分支、标签等重要信息


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 的暂存区


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[每周一更]-(第79期):Apache代理的配置

反向代理逻辑类似Nginx&#xff0c;以下具体展示属于apache的配置和参数说明 局部代理配置方式&#xff1a; # 配置包含https的需要打开 SSLProxyEngine on ProxyPass /api/small https://api.web.com/version1/small/ ProxyPassReverse /api/small https://api.web.com/versio…

直方图与均衡化

直方图 统计图像中相同像素点的数量。 使用cv2.calcHist(images, channels, mask, histSize, ranges)函数 images&#xff1a;原图像图像格式为uint8或float32&#xff0c;当传入函数时应用[]括起来&#xff0c;例如[img]。 channels&#xff1a;同样用中括号括起来&#xff…

如何确保云中高可用?聊聊F5分布式云DNS负载均衡

在当今以应用为中心的动态化市场中&#xff0c;企业面临着越来越大的压力&#xff0c;不仅需要提供客户所期望的信息、服务和体验&#xff0c;而且要做到快速、可靠和安全。DNS是网络基础设施的重要组成部分&#xff0c;拥有一个可用的、智能的、安全和可扩展的DNS基础设施是至…

工程(十六)——自己数据集跑Fast_livo

一、基础环境 Ubuntu20.04 ROS noetic PCL 1.8 Eigen 3.3.4 Sophus git clone https://github.com/strasdat/Sophus.git cd Sophus git checkout a621ff mkdir build && cd build && cmake .. make sudo make install 下面两个直接把包下载下来一起编译…

2023-12-29 服务器开发-Centos部署LNMP环境

摘要: 2023-12-29 服务器开发-Centos部署LNMP环境 centos7.2搭建LNMP具体步骤 1.配置防火墙 CentOS 7.0以上的系统默认使用的是firewall作为防火墙&#xff0c; 关闭firewall&#xff1a; systemctl stop firewalld.service #停止firewall systemctl disable fire…

Windows上ModbusTCP模拟Master与Slave工具的使用

场景 Modbus Slave 与 Modbus Poll主从设备模拟软件与Configure Virtual Serial串口模拟软件使用&#xff1a; Modebus Slave 与 Modbus Poll主从设备模拟软件与Configure Virtual Serial串口模拟软件使用_modbus poll激活-CSDN博客 数据对接协议为Modbus TCP,本地开发需要使…

C语言编程入门 – 编写第一个Hello, world程序

C语言编程入门 – 编写第一个Hello, world程序 C Programming Entry - Write the first application called “Hello, world!” By JacksonML C语言编程很容易&#xff01; 本文开始&#xff0c;将带领你走过C语言编程之旅&#xff0c;通过实例使你对她颇感兴趣&#xff0c;一…

GLTF编辑器实现逼真的石门模型

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 在凹凸贴图中&#xff0c;每个像素点都包含了一个法线向量&#xff0…

楼宇对讲门铃选型分析

目前很多的高层住宅都使用了对讲门铃了&#xff0c;在频繁使用中&#xff0c;门铃会出现的越来越多种类&#xff0c;下面我就简单的介绍会有用到的几款芯片. 语音通话芯片&#xff1a;D34018,D34118,D5020,D31101; D34018 单片电话机通话电路&#xff0c;合并了必 需的放大器…

Nature | 大型语言模型(LLM)能够发现和产生新知识吗?

大型语言模型&#xff08;LLM&#xff09;是基于大量数据进行预训练的超大型深度学习模型。底层转换器是一组神经网络&#xff0c;这些神经网络由具有自注意力功能的编码器和解码器组成。编码器和解码器从一系列文本中提取含义&#xff0c;并理解其中的单词和短语之间的关系。通…

GPT-3: Language Models are Few-Shot Learners

GPT-3 论文 数据集 CommonCrawl&#xff1a;文章通过高质量参考语料库对CommonCrawl数据集进行了过滤&#xff0c;并通过模糊去重对文档进行去重&#xff0c;且增加了高质量参考语料库以增加文本的多样性。WebText&#xff1a;文章采用了类似GPT-2中的WebText文档收集清洗方…

BUG-由浏览器缩放引起PC端显示手机端视图

文章目录 来源解决 来源 启动Vue项目&#xff0c;用浏览器打开显示手机端视图&#xff0c;从vscode直接ctrl链接打开正常显示。 检查-未开启仿真&#xff0c;但仍显示错误。 解决 浏览器缩放问题。 修改为100%

javascript实现数据双向绑定

ES5中的双向绑定 ES5中的对象属性类型有两种&#xff1a;分别是数据属性和访问器属性 一&#xff0c;数据属性 数据属性包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有4个描述其行为的特性 1&#xff0c;configurable:表示能否通过delete删除属性而重新定义…

【机器学习前置知识】Beta分布

Beta分布与二项分布的关系 Beta分布与二项分布密切相关,由二项分布扩展而来,它是用来描述一个连续型随机变量出现的概率的概率密度分布,表示为 X X X~ B e t a ( a , b ) Beta(a,b) Beta(a,b) , a 、 b a、b a、b 是形状参数。Beta分布本质上也是一个概率密度函数,只是这…

nodeJS搭建免费代理IP池爬取贴吧图片实战

之前用python写过爬虫&#xff0c;这次想试试nodeJS爬虫爬取贴吧图片&#xff0c;话不多说代码如下&#xff0c;爬取制定吧的前十页所有帖子里的图片 爬取贴吧图片脚本 你得提前创建一个images文件夹 const axios require("axios"); const cheerio require("…

Python+Yolov5+Qt交通标志特征识别窗体界面相片视频摄像头

程序示例精选 PythonYolov5Qt交通标志特征识别窗体界面相片视频摄像头 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《PythonYolov5Qt交通标志特征识别窗体界面相片视频摄像头》编写代码&a…

[Angular] 笔记 19:路由参数

油管视频 Route Parameters 路由参数是跟在 url 后面的数字&#xff0c;字符串&#xff0c;或者 数字字符串&#xff0c;例如如下 url 中的 123&#xff0c;此类参数会传给后端&#xff1a; www.facebook.com/profile/123 首先将 pokemon-template-form 组件移到 pokeman-ba…

骑砍战团MOD开发(27)-module_tableau_materials.py材质

一.配置材质资源 OpenBrf寻找对应材质资源. tableau配置材质资源 ("round_shield_1", 0, "sample_shield_round_1", 512, 256, 0, 0, 0, 0,[(store_script_param, ":banner_mesh", 1),(set_fixed_point_multiplier, 100),(init_position, pos1),…

golang第六卷---go命令

go命令 go/go helpgo versiongo envgo buggo buildgo installgo getgo modgo rungo cleango docgo fixgo fmtgo generatego workgo testgo toolgo vet go/go help 通过该命令&#xff0c;我们可以查看go语言中的所有命令&#xff0c;其中go与go help两个命令是等效的 如下&…

攻防技术-单包攻击防范:扫描、畸形、特殊(HCIP)

单包攻击类型介绍 一、扫描窥探攻击 1、地址扫描攻击防范 攻击介绍 运用ping程序探测目标地址&#xff0c;确定目标系统是否存活。也可使用TCP/UDP报文对目标系统发起探测&#xff08;如TCP ping&#xff09;。 防御方法 检测进入防火墙的ICMP、TCP和UDP报文&#xff0c;根…