git基础操作

2023-05-16

在 Windows 系统中可以安装 Git for Windows 客户端 :

'把当前所在目录变成一个本地仓库'
git init

'查看当前本地库状态'
git status

'新建文件,并跟踪此新建文件,即把新增文件添加到暂存区,以备提交'
echo 'hello world' > one.txt
# git add [文件名]
git add one.txt
'如果对多个文件或目录进行了增删改,可以使用 git add . 命令全部添加到暂存区'
git add . 

'如果要撤销暂存区的修改怎么办?
根据上图的提示,执行 git reset -- [文件名] 或者 git rm --cached [文件名] 命令即可'
git reset -- one.txt
'如果省略最后的文件名,把命令写成 git reset -- 即可把暂存区的全部修改撤销。'
git reset --

'将执行 git commit 命令把暂存区的修改提交到版本区,生成一个新的版本。'
git commit  #提交所有
git commit -m "你的注释"  #提交所有,并注释
#提交单个文件,并注释
git commit .gitignore -m "忽略master文件"


'打开终端使用 git --version 命令查看版本'
git --version 

'克隆 GitHub 上的仓库到本地'
git clone [仓库地址] 
 #例如
git clone https://github.com/meiqua/shape_based_matching.git

'查看本地仓库所关联的远程仓库信息:'
git remote -v

'克隆远程仓库到本地时,还可以使用 -o 选项修改主机名,在地址后面加上一个字段作为本地仓库的主目录名'
git clone -o originnn https://github.com/meiqua/shape_based_matching.git haha

'把当前所在目录变成一个本地仓库'
git init
'获取帮助'
git --help

'查看当前本地库状态'
git status

'新建文件,并跟踪此新建文件,即把新增文件添加到暂存区,以备提交'
echo 'hello world' > one.txt
# git add [文件名]
git add one.txt

'如果对多个文件或目录进行了增删改,可以使用 git add . 命令全部添加到暂存区'
git add . 

'如果要撤销暂存区的修改怎么办?
根据上图的提示,执行 git reset -- [文件名] 或者 git rm --cached [文件名] 命令即可'
git reset -- one.txt

'如果省略最后的文件名,把命令写成 git reset -- 即可把暂存区的全部修改撤销。'
git reset --

'查看工作区被跟踪的文件的修改详情'
git diff
`注意,只有在版本区中存在的文件才是被跟踪文件。
此时会跳到新的页面,即工作区修改详情页,按 Q 退出此页面`

'查看暂存区的全部修改'
git diff --cached 

'将执行 git commit 命令把暂存区的修改提交到版本区,生成一个新的版本。'
git commit #提交所有
#提交单个文件,并注释
git commit .gitignore -m "忽略master文件"

'查看版本区的提交历史记录'
git log
#关于查看提交历史记录的命令,有些常用的选项介绍一下:
git log [分支名] #查看某分支的提交历史,不写分支名查看当前所在分支
git log --oneline #一行显示提交历史
git log -n #其中 n 是数字,查看最近 n 个提交
git log --author [贡献者名字] #查看指定贡献者的提交记录
git log --graph #图示法显示提交历史
git log --reverse #查看时间正序排列的信息

'配置个人信息'
git config --global user.email "写入你自己注册 GitHub 账号的邮箱"
git config --global user.name "你自己的 GitHub 账号名字"
git config -l #可以查看配置信息
#完成后,系统自动生成 Git 的配置文件,就是主目录中的隐藏文件 .gitconfig :
'配置文件也是可以直接手动修改'
cat -n ~/.gitconfig
sudo vim  ~/.gitconfig

'介绍一个超级实用、使用频率极高但几乎所有 Git 教程都不重视的命令,它用来查看全部分支信息:'
 git branch -avv

'将未添加到暂存区的修改,也就是工作区的修改也一并提交,但会略过未被跟踪的文件,比如新建文件 one.txt'
git commit -am xxxxx 
#本地分支 master 与远程分支 origin/master 的版本号一致,通常看两个版本号是否一致,只需比对前四位。

'将本地新增的提交推送到 GitHub 远程仓库中'
git push #后面不需要任何选项和参数,此命令会把本地仓库 master 分支上的新增提交推送到远程仓库的同名分支上,因为当前所在的分支就是 master,而且上文提到,它已经跟踪了远程仓库的同名分支:

'撤销最近的一次提交,将修改还原到暂存区。'
 git reset --soft HEAD^
`--soft 表示软退回,对应的还有 --hard 硬退回,后面会讲到,HEAD^ 表示撤销一次提交,
HEAD^^ 表示撤销两次提交,撤销 n 次可以简写为 HEAD~n。`

'强制推送到远程'
git push -f
`本地仓库的 master 分支与远程仓库的 origin/master 分支在提交版本上有了冲突,又叫做提交时间线分叉。因为刚才的提交操作不是基于远程仓库 origin/master 分支的最新提交版本,而是撤回了一个版本。这种情况下也是可以将本地 master 分支推送到远程仓库的,需要加一个选项 -f ,它是 --force 的简写,这就是强制推送`

'reflog 记录只存在于本地仓库中,本地仓库删除后,记录消失。'
git reflog
#我们有 git reflog 命令,它会记录本地仓库所有分支的每一次版本变化。实际上只要本地仓库不被删除,随你怎么折腾,都能回退到任何地方。

'回退到某个版本'
 git reset --hard [版本号]
 #如果记不清版本号,也可以根据 reflog 的信息,
 git reset --hard HEAD@{2}
 `其中 HEAD@{2} ,这个命令的意思是回到当前分支最近两次提交版本变化前`

文章目录

      • 1、克隆 GitHub 上的仓库到本地
      • 2、Git 基础操作

1、克隆 GitHub 上的仓库到本地

当我们在 GitHub 上创建一个仓库时,同时生成了仓库的默认主机名 origin,并创建了默认分支 master。GitHub 可以看成是免费的 Git 服务器,在 GitHub 上创建仓库,会自动生成一个仓库地址,主机就是指代这个仓库,主机名就等于这个仓库地址。克隆一个 GitHub 仓库(也叫远程仓库)到本地,本地仓库则会自动关联到这个远程仓库,执行 git remote -v 命令可以查看本地仓库所关联的远程仓库信息:
在这里插入图片描述
Git 要求对本地仓库关联的每个远程主机都必须指定一个主机名(默认为 origin),用于本地仓库识别自己关联的主机,git remote 命令就用于管理本地仓库所关联的主机,一个本地仓库可以关联任意多个主机(即远程仓库)。

克隆远程仓库到本地时,还可以使用 -o 选项修改主机名,在地址后面加上一个字段作为本地仓库的主目录名,举例如下:
在这里插入图片描述
另一个在其它 Git 教程中常见的命令 git init ,它会把当前所在目录变成一个本地仓库,因为有 GitHub 的存在,这个命令在我们的生产生活中用到的次数应该是零,除非你想费时费力自己搭建服务器。操作截图如下:
在这里插入图片描述

2、Git 基础操作

Git 本地仓库有三大区域:工作区、暂存区、版本区。
在这里插入图片描述
如下图所示,新建文件后,命令行前缀又发生了一些微小的变化,红色 master 后面出现了 * 星号,这表示工作区或暂存区有变化,对文件进行增删改操作都会出现这个星号,另外使用 git status 命令亦可查看详情。
在这里插入图片描述

现在介绍另一个命令 git diff,它可以用来查看工作区被跟踪的文件的修改详情,此时新建文件 one.txt 并未被跟踪,而已被跟踪的文件 README.md 无修改,所以看不到。注意,只有在版本区中存在的文件才是被跟踪文件。

现在,将工作区的两处修改(新增文件 one.txt,修改文件 README.md)全部添加到暂存区,并使用 git diff --cached 查看暂存区的全部修改:

在这里插入图片描述
在这里插入图片描述
这两个命令设置你的身份信息如下图。git config -l 可以查看配置信息(就不展示截图了):
在这里插入图片描述
在这里插入图片描述
上图有三行信息,依次说明:

第一行,开头的星号表示当前所在分支,绿色的 master 是分支名,之所以是绿色,也是因为它是当前所在分支。后面第二项是版本号,第三项中括号里面蓝色的字,表示此分支跟踪的远程分支的名字,当然啦,这也是克隆远程仓库到本地时的默认设置 – 创建 master 分支并自动跟踪远程同名分支;冒号后面黑色文字表示本地分支领先其跟踪的远程分支一个提交。最后一项是提交时填写的备注信息。

第二行,是 Git 指针信息,它指向远程仓库的 master 分支,这行信息暂不重要。

第三行,远程分支信息,详见第一行的解释。

在执行 commit 命令时,再介绍一个我并不推荐的选项 -a ,它的作用是将未添加到暂存区的修改,也就是工作区的修改也一并提交,但会略过未被跟踪的文件,比如新建文件 one.txt,此命令的完整格式:git commit -am xxxxx 。谨慎的做法是按照前文的顺序,修改工作区 - 提交到暂存区 - 随时使用 git status 查看仓库状态 - 将暂存区的修改提交到版本区生成一次新的提交。

在这里插入图片描述

可以看到本地仓库的 master 分支与远程仓库的 origin/master 分支在提交版本上有了冲突,又叫做提交时间线分叉。因为刚才的提交操作不是基于远程仓库 origin/master 分支的最新提交版本,而是撤回了一个版本。这种情况下也是可以将本地 master 分支推送到远程仓库的,需要加一个选项 -f ,它是 --force 的简写,这就是强制推送:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git基础操作 的相关文章

  • 面试题26:树的子结构

    题目 xff1a 输入两棵二叉树A和B xff0c 判断B是不是A的子结构 代码 span class token macro property span class token directive keyword include span
  • 面试题27:二叉树的镜像

    题目 xff1a 请完成一个函数 xff0c 输入一个二叉树 xff0c 该函数输出它的镜像 代码 span class token macro property span class token directive keyword inc
  • 面试题28:对称的二叉树

    题目 xff1a 请实现一个函数 xff0c 用来判断一棵二叉树是不是对称的 如果一棵二叉树和它的镜像一样 xff0c 那么它是对称的 代码 span class token macro property span class token
  • 面试题29:顺时针打印矩阵

    题目 xff1a 输入一个矩阵 xff0c 按照从外向里以顺时针的顺序依次打印出每一个数字 Code span class token macro property span class token directive keyword in
  • 看中科院大牛博士如何进行文献检索和阅读

    大家可以看看 xff0c 从其他地方看到的 xff01 导读 我是学自然科学的 xff0c 平时确实需要不少外文文献 xff0c 对于自然科学来讲英文文献检索首推Elsevier xff0c Springer等 虽然这些数据库里面文献已经不
  • 面试题32:从上往下打印二叉树

    面试题32 xff08 一 xff09 xff1a 不分行 题目 xff1a 从上往下打印出二叉树的每个结点 xff0c 同一层的结点按照从左到右的顺序打印 代码 span class token macro property span c
  • 面试题33:二叉搜索树的后序遍历序列

    题目 输入一个整数数组 xff0c 判断该数组是不是某二叉搜索树的后序遍历的结果 如果是则返回true xff0c 否则返回false 假设输入的数组的任意两个数字都互不相同 代码 span class token macro proper
  • 面试题34:二叉树中和为某一值的路径

    题目 输入一棵二叉树和一个整数 xff0c 打印出二叉树中结点值的和为输入整数的所有路径 从树的根结点开始往下一直到叶结点所经过的结点形成一条路径 代码 span class token macro property span class
  • 面试题35:复杂链表的复制

    题目 请实现函数ComplexListNode Clone ComplexListNode pHead xff0c 复 制一个复杂链表 在复杂链表中 xff0c 每个结点除了有一个m pNext指针指向下一个结点外 xff0c 还有一个m
  • 面试题36:二叉搜索树与双向链表

    题目 输入一棵二叉搜索树 xff0c 将该二叉搜索树转换成一个排序的双向链表 要求不能创建任何新的结点 xff0c 只能调整树中结点指针的指向 代码 span class token macro property span class to
  • 面试题37:序列化二叉树

    题目 请实现两个函数 xff0c 分别用来序列化和反序列化二叉树 代码 span class token macro property span class token directive keyword include span span
  • 面试题38:字符串的排列

    文章目录 字符串的排列扩展 子集扩展 组合扩展 排列 字符串的排列 题目 输入一个字符串 xff0c 打印出该字符串中字符的所有排列 例如输入字符串abc xff0c 则打印出由字符a b c所能排列出来的所有字符串abc acb bac
  • 面试题39:数组中出现次数超过一半的数字

    题目 数组中有一个数字出现的次数超过数组长度的一半 xff0c 请找出这个数字 例如输入一个长度为9的数组 1 2 3 2 2 2 5 4 2 由于数字2在数组中 出现了5次 xff0c 超过数组长度的一半 xff0c 因此输出2 I O
  • 面试题40:最小的k个数

    题目 输入n个整数 xff0c 找出其中最小的k个数 例如输入4 5 1 6 2 7 3 8这8个数字 xff0c 则最小的4个数字是1 2 3 4 code 方法一 xff1a 时间复杂度为O n 的算法 xff0c 只有当我们可以修改输
  • 面试题41:数据流中的中位数

    题目 如何得到一个数据流中的中位数 xff1f 如果从数据流中读出奇数个数值 xff0c 那么中位数就是所有数值排序之后位于中间的数值 如果从数据流中读出偶数个数值 xff0c 那么中位数就是所有数值排序之后中间两个数的平均值 I O nu
  • 如何由Xubuntu桌面系统还原至Ubuntu系统?

    假定读者原来的系统为ubuntu桌面系统 xff0c 并且根据如下命令更换到xubuntu桌面系统 xff1a sudo apt get install xrdp sudo apt get install vnc4server sudo a
  • 神经网络拟合函数表达式,神经网络拟合函数matlab

    1 matlab中如何用神经网络求得数据拟合函数 xff1f 我是做这个方向的 xff0c 神经网络拟合出的曲线是没有相应的函数的 xff0c 他是根据许多的权重值 xff0c 阀值和偏置值的训练确定的曲线 还有什么相关问题可以问我 xff
  • 面试题42:连续子数组的最大和

    题目 输入一个整型数组 xff0c 数组里有正数也有负数 数组中一个或连续的多个整数组成一个子数组 求所有子数组的和的最大值 要求时间复杂度为O n code 解法一 xff1a 暴力法 span class token macro pro
  • 面试题43:从1到n整数中1出现的次数

    题目 输入一个整数n xff0c 求从1到n这n个整数的十进制表示中1出现的次数 例如 输入12 xff0c 从1到12这些整数中包含1 的数字有1 xff0c 10 xff0c 11和12 xff0c 1一共出现了5次 code span
  • 面试题:数组中找出两个单数

    题目 一个数组中除了两个数是单个的 xff0c 其他的数都有两个 xff0c 请找出这两个单个的数 code span class token macro property span class token directive keywor

随机推荐

  • 面试题44:数字序列中某一位的数字

    题目 数字以0123456789101112131415 的格式序列化到一个字符序列中 在这个序列中 xff0c 第5位 xff08 从0开始计数 xff09 是5 xff0c 第13位是1 xff0c 第19位是4 xff0c 等等 请写
  • mvIMPACT 相机 SDK C++

    Overview 这是为想要使用mvIMPACT Acquire的c 43 43 接口的开发人员编写的文档 它基于C接口 xff0c 但是提供了一种更方便的面向对象的方法来处理设备驱动程序提供的属性和函数 SDK mvIMPACT xff0
  • 面试题:两个链表结构的数据相加,保存到新链表。

    使用STL span class token macro property span class token directive keyword include span span class token string lt iostrea
  • 软件建模基础

    摘录自某PPT 文章目录 软件建模基础0 软件质量属性0 1 如何评价代码质量0 2 软件质量属性 1 面向对象1 0 面向对象知识点1 1 面向对象四大特性1 1 xff08 封装 xff09 1 1 xff08 抽象 xff09 1 1
  • 如何扫描图像,查找表 和 用OpenCV进行时间测量

    英文版原文链接 xff1a How to scan images lookup tables and time measurement with OpenCV 文章目录 目标测试用例图像矩阵如何存储在内存之中 遍历方式一 xff1a 高效的
  • DDD开发

    内容来自某PPT 文章目录 DDD开发1 领域 限定上下文 实体 值对象1 1 领域 子域1 2 核心域 通用域 支撑域1 3 通用语言1 4 限界上下文 xff1a 定义领域边界的利器1 5 实体1 6 值对象1 7 实体 VS 值对象
  • 嵌入式软件开发工程师求职要求

    文章目录 他人感悟工作职责任职要求嵌入式软件开发涉及的知识点很多 xff0c 我仅简单说一下 xff1a 他人感悟 一线工程师告诉你嵌入式真实现状与发展前景 当我们谈论嵌入式时我们究竟在谈什么 工作职责 负责硬件平台bring up xff
  • kolla-ansible openstack登录 证书不可用

    根据官方文档配置kolla ansible之后 xff0c 创建openstack实例 xff0c 登录openstack出现证书不可用 xff0c 如图 问题排查 尝试过 更新openrc sh文件增加OS TOKEN环境变量 查看日志
  • 联发科2021笔试题:字符串中找到 出现次数 最多的单个字符

    I O描述 输入 xff1a span class token string 34 aaaaabbbbbBBBBBAAAAA 34 span 输出 xff1a A span class token punctuation span span
  • 对矩阵的 掩码运算

    英文链接 xff1a Mask operations on matrices 文章目录 测试用例代码基本函数二维滤波器函数 矩阵的掩码操作非常简单 其思想是我们根据掩码矩阵 也称为内核 重新计算图像中每个像素的值 此掩码保存的值将调整相邻像
  • 对图片的操作

    英文原文链接 xff1a Operations with images 文章目录 输入 输出图像的基本操作内存管理和引用计数基本操作可视化图像 输入 输出 从文件加载一个图像 Mat img span class token operato
  • 使用OpenCV相加(混合)两个图像

    使用OpenCV相加 混合 两个图像 xff1a Adding blending two images using OpenCV 文章目录 目标理论源码解释结果 目标 什么是线性混合 xff0c 为什么它有用 如何使用addWeighted
  • 改变图像的对比度和亮度

    英文链接 xff1a Changing the contrast and brightness of an image 文章目录 目标理论图像处理像素处理亮度和对比度调整 源码解释结果实例亮度和对比度调整图像灰度校正 xff08 Gamma
  • 离散傅里叶变换

    英文链接 xff1a Discrete Fourier Transform 目标 什么是傅里叶变换 xff0c 为什么要用它 在OpenCV中怎么做 使用诸如 copyMakeBorder merge dft getOptimalDFTSi
  • 使用XML和YAML文件的 文件输入和输出

    英文链接 xff1a File Input and Output using XML and YAML files 文章目录 目标源码解释结果 目标 如何打印和读取文本条目到文件 和 OpenCV使用YAML或XML文件 如何为OpenCV
  • 如何使用OpenCV的parallel_for_并行化你的代码

    英文链接 xff1a How to use the OpenCV parallel for to parallelize your code 文章目录 目的先决条件简单的示例 绘制曼德尔布罗特集 xff08 Mandelbrot set x
  • 摇杆滑块机构运动模型

    clc span class token punctuation span close all span class token punctuation span r1为杆1的长度 xff0c r2为杆2的长度 xff0c d为偏置距离 r
  • 广义逆矩阵A+:行列满秩法和奇异值分解法

    奇异值的物理意义是什么 xff1f 广义逆矩阵A 43 SVD 矩阵奇异值分解 原理与几何意义 SVD xff08 奇异值分解 xff09 小结 超定方程 最小二乘解 奇异值分解 xff08 SVD xff09 A span class t
  • MQ-2烟雾浓度传感器

    文章目录 一 模块简介二 工作原理三 程序设计 本实验将采集到的传感器数据利用ADC转换 xff0c 将转换后的电压值显示在串口调试助手上 一 模块简介 MQ 2烟雾传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡 SnO2 当烟雾
  • git基础操作

    在 Windows 系统中可以安装 Git for Windows 客户端 xff1a span class token string 39 把当前所在目录变成一个本地仓库 39 span span class token function