Linux-git

news2025/4/17 11:21:14

文章目录

  • git简介
  • git常用命令
    • 配置
    • 初始化仓库
    • 将文件添加到暂存区
    • 将暂存区文件加入版本库
    • 对比工作区某文件和暂存区中的区别
    • 将暂存区的文件移除但git仍管理
    • 将文件移除暂存区并且git不再管理
    • 查看版本库
    • 切换到之前的版本
    • 恢复文件
    • 持久化
  • 云端
    • 将本地的项目推送到远程仓库
    • 将远程仓库的文件克隆下来
  • 分支操作
    • 简述
    • 操作
      • 创建新分支
      • 查看分支
      • 回到分支
      • 合并分支
      • 删除分支
      • 将本地的commit提交到云端
      • 将其他分支同步到云端
      • 删除云端的分支
      • 将云端分支和本地分支对应起来
      • 将云端同步到本地
      • 将云端分支合并到本地当前分支
  • 多人协同
    • 添加密钥

git简介

git的功能是用一棵树的形式将代码的历史版本维护出来
工作区:仓库的目录,独立于各分支
暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。
版本库:存放所有已经提交到本地仓库的代码版本。是树形结构的各节点

git常用命令

配置

  • git --global user.name xxx:设置全局用户名,保存在~/.gitconfig文件下
  • git --global user。email xxxx:设置全局邮箱地址,保存在~/.gitconfig文件下

初始化仓库

  • git init:初始化仓库,在当前目录下创建了一个空仓库,将所有仓库的信息放在.git隐藏文件夹下

将文件添加到暂存区

  • git add xx:将xx文件加入到暂存区,
  • git add .:将所有待加入到暂存区的文件加入到缓存区
    修改project后(创建了一个readme.txt),再次查看惨仓库状态git status,可以看到有一个readme.txt未加入暂存区
    image
    git add readme.txt后,显示有一个readme.txt文件在暂存区中
    image

将暂存区文件加入版本库

  • git commit -m "给自己看的备注信息":将暂存区的内容提交到版本库
    image
    修改readme.txt文件
    image
    查看仓库当前状态用git status命令,可以看到我们修改了readme.txt文件
    image
    将修改后的文件加入暂存区
    image
    如果文件颜色变成绿色则说明文件已经被放入暂存区

对比工作区某文件和暂存区中的区别

  • git diff xx:xx为要对比的文件名
    image

将暂存区的文件移除但git仍管理

  • git restore --stage xx:xx为文件名,此命令仅将暂存区的xx文件移除暂存区,但git仍然管理这个文件

将文件移除暂存区并且git不再管理

  • git rm --cached xx
    如果我们想git接着管理我们就再add一遍就可以了

查看版本库

  • git log:查看当前分支中的所有版本
    image
    image

切换到之前的版本

  • git reset --hard HEAD^:回滚到当前HEAD的前一个版本,两个^表示回滚到当前HEAD的前两个版本
  • git reset --hard 版本号:回滚到版本号的版本,这样我们就可以回滚到任意版本了
    image
    回滚后查看git log,可以看到从空走到当前HEAD的版本
    image

注意这里的回滚是不会将我们之前的内容删掉的,如果回到我们跳过来的版本呢?可以先利用git reflog:查看HEAD移动的记录,这样我们可以找到每个移动过的版本的编号,git reflog看到的是前7位,关于回滚的含义,这里将本地存储的文件跳回版本号存储的文件,这个就是一个帮助我们管理历史版本很有效的方法

image
image
image
跳回到add 333版本

image

恢复文件

  • git restore xx:将修改的xx文件恢复,他是将我们的文件恢复到和暂存区一样,而不是回滚到之前的版本
    image

持久化

  • git commit -m "备注":将暂存区的内容持久化
    image
    也可以只讲暂存区中的一部分文件持久化
    git add xx 然后 git commit -m xx
    image

云端

将本地的项目推送到远程仓库

  • git remote add origin git@git.acwing.com:cxy8/project.git:将本地目录和远程目录对应起来 git@git.acwing.com:cxy8/project.git:是名称@后面是域名,cxy/project.git是需要对用的文件路径

  • git push -u origin master:将本地仓库推送到远程仓库

将远程仓库的文件克隆下来

  • git clone git@git.acwing.com:cxy8/project.git:ssh克隆git@git.acwing.com:cxy8/project.git表示的和scp那里面的是一样的。

需要注意的是我们并没有将移动记录克隆下来也就是说没有reflog没有被记录下来

image

分支操作

简述

我们一般在开发的时候一般不会在主分支上开发,一般会在不同的分支进行开发

操作

创建新分支

  • git checkout -b branch_name:创建一个名为branch_name的分支

查看分支

  • git branch

image

回到分支

  • git checkout branch_name

合并分支

  • git merge 分支名:将分支的HEAD节点合并到当前分支的当前节点
    image
    合并分支时出现矛盾需要我们手动更改
    image

image
此时readme.txt文件的内容如下:
image

删除分支

  • git branch -d branch_name:删除分支

将本地的commit提交到云端

  • git push (-u):第一次提交需要加上-u,后面则不需要
    image

将其他分支同步到云端

  • git push --set-upstream origin dev3

删除云端的分支

  • git push -d origin dev3:删除云端dev3这个分支

将云端分支和本地分支对应起来

  • git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的branch_name1branch_name2对应起来

将云端同步到本地

  • git pull:相当于将云端的分支拿下来然后再merge

将云端分支合并到本地当前分支

  • git pull origin branch_name

多人协同

多人协同开发时都不会在master分支上开发,都是在dev分支上进行开发,每个人开发一个分支

添加密钥

git-keygen
将密钥添加到仓库
创建新分支并和远程创库的分支对接
git checkout -b dev 
git branch --set-upstream origin dev
git pull

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

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

相关文章

使用RestSharp和C#编写程序

以下是一个使用RestSharp和C#编写的爬虫程序,用于爬取www.zhihu.com上的视频。此程序使用了https://www.duoip.cn/get_proxy来获取代理IP。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks…

关于利用webase-front节点控制台一键导出的java项目解析

搭建区块链系统和管理平台分别用的的fisco、webase。 关于我们在利用java开发DApp(去中心化引用),与区块链系统交互,可以用: 1.webase前置服务给开发者提供的api:我们在搭建好fisco链之后,在搭一个webase-front服务,我…

Ceph存储

数据存储类型 块存储 存储设备与客户端主机是 一对一 的关系,块存储设备只能被一个主机挂载使用,数据以块为单位进行存储的,典型代表:硬盘 文件存储 一对多,能被多个主机同时挂载/传输使用,数据以文件的…

新年学新语言Go之四

一、前言 任何编程语言都有类型系统,类型系统解决了数据的存取问题,它决定了使用这个类型需要开辟内存空间大小以及数据是如何存放的,也解决如何读出数据,因为在内存中相同二进制值不同类型的含义是不一样的,关于Go基…

单链表的相关操作(初阶)

链表的概念 链表是线性表的一种,它是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻 辑顺序是通过链表中的指针链接次序实现的 。其实链表就相当于一列火车: 链表的结构跟⽕⻋⻋厢相似,淡季⻋厢会相应减少&#xff0c…

再添合作 | 大势智慧与长沙市规划信息服务中心签订战略合作协议

10月18日,武汉大势智慧科技有限公司(以下简称:大势智慧)与长沙市规划信息服务中心(以下简称)战略合作签约仪式在长沙举行。大势智慧CTO张帆与长沙市规划信息服务中心生产经营总监杨凤京代表双方签署战略合作…

如何处理前端无障碍(Accessibility)?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

酷开会员值得回味的经典老剧还记得吗?酷开系统家庭影院带你重温

那些年,大家的娱乐生活主要集中在那一台9寸的黑白电视机中;那些年,家家户户的孩子们晚上都会聚到电视机前欢声笑语;那些年,是诸多经典的电视剧陪伴了很多人的闲暇时光……那些年陪伴我们成长,在记忆中熠熠生…

向量数据库Transwarp Hippo1.1多个新特性升级,帮助用户实现降本增效

例如,当查询“A公司业务发展情况”时,通过向量检索可以检索出A公司“主要业务”、“经营模式”、“财务情况”、“市场地位”等信息,通过全文检索可以检索出知识库中和关键字“业务”、“发展”相关的结果作为补充,通过将两者检索的结果进行结合,可以使得大模型回答的结果…

nexus私服安装

1.将文件上传到linux服务器中 2.解压、重命名 tar -zxvf nexus-3.7.1-02-unix.tar.gz //解压 mv nexus-3.7.1-02 nexus //重命名 3.自定义配置虚拟机可打开 nexus.vmoptions 文件进行配置 如果Linux硬件配置比较低的话,建议修改为合适的大小&…

前端(十九)——vue/react脚手架的搭建方式

😄博主:小猫娃来啦 😄文章核心:前端(十九)——vue/react脚手架的搭建方式 文章目录 前言Vue脚手架搭建方法Vue CLI脚手架Vite脚手架其他方式 React脚手架搭建方法Create React App脚手架Vite脚手架其他方式…

element 日期选择器禁止选择指定日期前后时间

画圈重点&#xff1a;disabledDate的写法要用箭头函数&#xff0c;不能用普通函数写法&#xff0c;否则this指向就错了&#xff0c;会报 undefined <el-date-picker v-model"time" type"date" value-format"yyyy-MM-dd" :…

使用CPR库和Python编写程序

以下是一个使用CPR库和Python编写的爬虫程序&#xff0c;用于爬取。此程序使用了proxy的代码。 import requests from cpr import CPR ​ def get_proxy():url "https://www.duoip.cn/get_proxy"headers {"User-Agent": "Mozilla/5.0 (Windows NT …

C++标准模板(STL)- 类型支持 (数值极限,min,lowest,max)

数值极限 提供查询所有基础数值类型的性质的接口 定义于头文件 <limits> template< class T > class numeric_limits; numeric_limits 类模板提供查询各种算术类型属性的标准化方式&#xff08;例如 int 类型的最大可能值是 std::numeric_limits<int>::ma…

01、MySQL-------性能优化

目录 一、影响性能的相关因素存储过程&#xff1a; 二、sql优化1>、Mysql系统架构2>、引擎区别&#xff1a; 3>、索引1、什么是索引&#xff1f;联合主键索引理解&#xff1a;索引长度理解&#xff1a;什么是慢查询&#xff1f; 1&#xff09;、索引理解2&#xff09;…

Win系统VMware虚拟机安装配置(一)(附激活码安装包)

VMware软件包&#xff08;Mac和Win&#xff09;提取码:hzxyhttps://www.123pan.com/s/JRpSVv-vKnjv.html 一、VMware 安装 一台电脑本身是可以装多个操作系统的&#xff0c;但是做不到多个操作系统切换自如&#xff0c;所以我们 需要一款软件帮助我们达到这个目的&#xff0c…

MIKE水动力笔记16_MIKE中的u、v、Speed、Direction之间的关系

本文目录 前言Step 1 MIKE中u、v、Speed、Direction的界定Step 2 从MIKE中导出u、v、Speed、Direction数据Step 3 数据导入Excel验证 前言 这两天饶有兴趣的做了一下关于MIKE中u、v、Speed、Direction之间关系的小测试&#xff0c;其实主要是为了探究利用u、v得到的角度和Dire…

下笔如有神:用VS Code写markdown

文章目录 Markdown All in One快捷键指令 输出PDFMarkdown Preview Enhancedmarkdown基本语法 Markdown All in One VS Coode中最推荐的Markdown插件是Markdown All in One&#xff0c;下文简称为mdAIO。千万别搜完markdown后下一个叫Markdown的插件&#xff0c;这个插件的名字…

Axi_Lite接口的IP核与地址与缓冲与AxiGP0

AXI Interconnect互连内核将一个或多个 AXI 内存映射主设备连接到一个或多个内存映射从设备。 AXI_GP 接口 AXI_GP 接口是直接连接主机互联和从机互联的端口的。 AXI_HP 接口具有一个 1kB 的数据 FIFO 来做缓冲 [4]&#xff0c;但是 AXI_GP 接口与它不同&#xff0c;没…

相同的树[简单]

一、题目 给你两棵二叉树的根节点p和q&#xff0c;编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3], q [1,2,3] 输出&#xff1a;true 示例…