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

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...