【git】常用操作

基础操作

  • git init 初始化仓库

要使用 Git 进行版本管理,必须先初始化仓库, 执行了 git init命令的目录下就会生成 .git 目录。这个 .git 目录里存储着管理当前目录内容所需的仓库数据

  • git status 查看仓库状态

工作树和仓库在被操作的过程中,状态会不断发生变化。在 Git 操作过程中时常用 git status命令查看当前状态,

git status
  • git add 向暂存区中添加文件

要想让新建的文件成为 Git 仓库的管理对象,就需要用 git add命令将其加入暂存区(Stage 或者 Index)中。暂存区是提交之前的一个临时区域。

git add ./filename
  • git commit 保存仓库的历史记录

git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。

git commit -m '提交信息'#修改提交信息
git commit --amend#git add+commit 合并操作
git commit -am '提交信息'
  • git log 查看提交日志
# 查看全部日志
git log #查看指定目录、文件日志
git log filename#查看提交所带来的改动
git log -p #查看文件提交前后的差别
git log -p filename#以图表形式查看分支
git log --graph
  • git diff 查看更改前后差别

git diff命令可以查看工作树、暂存区、最新提交之间的差别。

# 执行 git diff命令,查看当前工作树与暂存区的差别
git diff#查看工作树和最新提交的差别 HEAD是指向当前分支中最新一次提交的指针。
git diff HEAD

分支操作

  • git branch 查看分支
# 显示分支列表并确定当前所在分支
git branch #-a参数可以同时显示本地仓库和远程仓库的分支信息
git branch -a# 删除指定分支
git branch -d <branch_name>
  • git check 切换分支
# 切换分支
git checkout <branch_name>#切换回上一个分支
git checkout -# 以当前所在分支为基础创建新的分支
git checkout -b <branch_name>

特性分支:特性分支顾名思义,是集中实现单一特性(主题),此之外不进行任何作业的分支。基于特定主题的作业在特性分支中进行,主题完成后再与 master 分支合并。只要保持这样一个开发流程,就能保证 master 分支可以随时供人查看。这样一来,其他开发者也可以放心大胆地从 master 分支创建新的特性分支。

主干分支:主干分支是刚才我们讲解的特性分支的原点,同时也是合并的终点。通常会用 master 分支作为主干分支。主干分支中并没有开发到一半的代码,可以随时供他人查看。主干分支总是配置在正式环境中

  • git merge 合并分支
# 切换至主干分支
checkout master
#将特性分支代码合并至主干分支
git merge --no--ff <branch_name>

更改提交操作

  • git reset 回溯历史版本

要让仓库的 HEAD、暂存区、当前工作树回溯到指定状态,需要用到 git rest --hard命令。只要提供目标时间点的哈希值 ,就可以完全恢复至该时间点的状态

git reset --hard fd0cbf0d4a25f747230694d95cac1be72d33441d

git log命令只能查看以当前状态为终点的历史日志。所以这里要使用 git reflog命令,查看当前仓库的操作日志。在日志中找出回溯历史之前的哈希值,通过 git reset --hard命令恢复到回溯历史前的状态。

git reflog
4096d9e HEAD@{0}: commit: Fix B
fd0cbf0 HEAD@{1}: checkout: moving from master to fix-B
fd0cbf0 HEAD@{2}: reset: moving to fd0cbf0d4a25f747230694d95cac1be72d33441d
83b0b94 HEAD@{3}: merge feature-A: Merge made by the 'recursive' strategy.
fd0cbf0 HEAD@{4}: checkout: moving from feature-A to master
8a6c8b9 HEAD@{5}: checkout: moving from master to feature-A
fd0cbf0 HEAD@{6}: checkout: moving from feature-A to master
8a6c8b9 HEAD@{7}: commit: Add feature-A
fd0cbf0 HEAD@{8}: checkout: moving from master to feature-A
fd0cbf0 HEAD@{9}: commit: Add index
9f129ba HEAD@{10}: commit (initial): First commit

在日志中,我们可以看到 commit、checkout、reset、merge 等 Git 命令的执行记录。只要不进行 Git 的 GC(Garbage Collection,垃圾回收),就可以通过日志随意调取近期的历史状态,就像给时间机器指定一个时间点,在过去未来中自由穿梭一般。即便开发者错误执行了 Git 操作,基本也都可以利用 git reflog命令恢复到原先的状态

远程仓库

  • git remote add 添加远程仓库
git remote add origin git@github.com:github-book/git-tutorial.git
  • git push 推送至远程仓库
#将当前分支下的内容推送给远程仓库origin的master分支
git push origin master
  • git clone 获取远程仓库

执行 git clone命令后我们会默认处于 master 分支下,同时系统会自动将 origin 设置成该远程仓库的标识符。也就是说,当前本地仓库的 master 分支与 GitHub 端远程仓库(origin)的 master 分支在内容上是完全相同的

git clone git@github.com:github-book/git-tutorial.git
  • 获取远程仓库feature-D分支
  • b 参数的后面是本地仓库中新建分支的名称。新建分支名称后面是获取来源的分支名称。以名为 origin 的仓库的 feature-D 分支为来源,在本地仓库中创建 feature-D 分支。
git checkout -b feature-D origin/feature-D
  • git pull 获取最新的远程仓库分支
 git pull origin master

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

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

相关文章

C++-线程池

1、使用C构造线程类 #include <iostream> #include <stdio.h> #include <stdlib.h> #include <queue> #include <cstring> #include <time.h> #include <unistd.h> #include <pthread.h> #include <thread> #include &…

Github: Github actions 自动化工作原理与多workflow创建

Github actions 1 &#xff09;概述 Github Actions 是Github官方推出的 CI/CD 解决方案 https://docs.githu.com/en/actions 优点 自动发布流程可减少发布过程中手动操作成本&#xff0c;大幅提升ci/cd效率&#xff0c;快速实现项目发布上线 缺点 存在较高的技术门槛需要利用…

Cloudways搭建WordPress外贸独立站完整教程

现在做个网站不比从前了&#xff0c;搭建网站非常的简单&#xff0c;主要是由于开源的CMS建站系统的崛起&#xff0c;就算不懂编程写代码的人也能搭建一个自己的网站&#xff0c;这些CMS系统提供了丰富的主题模板和插件&#xff0c;使用户可以通过简单的拖放和配置操作来建立自…

使用 Next.js 配置接口跨域

在现代 Web 开发中&#xff0c;跨域请求是一个常见的问题。当我们尝试从一个域&#xff08;例如example.com&#xff09;向另一个域&#xff08;例如api.example.com&#xff09;发送 HTTP 请求时&#xff0c;由于浏览器的同源策略限制&#xff0c;这个请求可能会被阻止。为了解…

制定游戏开发里程碑和迭代周期的最佳实践是什么?

制定游戏开发里程碑和迭代周期是游戏项目管理中的重要环节,以下是最佳实践的几个关键点: 明确项目愿景与目标: 在开始阶段,首先确立游戏的整体愿景、核心玩法以及最终发布的目标。这将为后续的所有里程碑提供方向。定义可度量的里程碑: 里程碑应当具体、清晰且可度量,如完…

ZK vs FHE

1. 引言 近期ZAMA获得7300万美金的投资&#xff0c;使得FHE获得更多关注。FHE仍处于萌芽阶段&#xff0c;是未来隐私游戏规则的改变者。FHE需与ZK和MPC一起结合&#xff0c;以发挥最大效用。如&#xff1a; Threshold FHE&#xff1a;将FHE与MPC结合&#xff0c;实现信任最小…

第k个数——字典序

题目链接&#xff1a;1.第k个数 - 蓝桥云课 (lanqiao.cn) 样例解释&#xff1a; 输入13&#xff0c;得到的初始数组为1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&#xff0c;7&#xff0c;8&#xff0c;9&#xff0c;10&#xff0c;11&#xff0c;12…

【微服务】分布式调度框架PowerJob使用详解

目录 一、前言 二、定时任务调度框架概述 2.1 为什么需要定时任务调度框架 2.2 定时任务调度使用场景 三、PowerJob 介绍 3.1 PowerJob 概述 3.2 PowerJob 功能特性 3.3 PowerJob 应用场景 3.4 PowerJob 与其他同类产品对比 四、PowerJob 部署 4.1 PowerJob 架构 4.…

综合知识篇06-软件架构设计考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html案例分析篇00-【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例…

一命通关递归

递归 简介 递归是我们在学C语言的时候&#xff0c;就已经接触到了的一个概念&#xff0c;相信大家的递归都是从这里开始的&#xff1a; 但是&#xff0c;在老师念ppt的时候&#xff0c;伴随着一些前轱辘不转后轱辘转的语言&#xff0c;我们往往都没有太去了解递归的工作原理和…

数据结构的美之百家争鸣-redis-dict篇

redis-6.2.4 首先定义字典的数据结构 跟hashpMap里面类似&#xff0c;一般是由数组和链表组成。 dictht typedef struct dictht {//entry类型的数组&#xff0c;保存指向entry的指针dictEntry **table;//哈希表的大小unsigned long size;//哈希表掩码&#xff0c;总等于siz…

车载测试面试:各大车企面试题汇总

本博主可协助大家成功进军车载测试行业 TBOX 深圳 涉及过T-BOX测试吗Ota升级涉及的台架环境是什么样的&#xff1f;上车实测之前有没有一个仿真环境台架环境都什么零部件T-BOX了解多少Linux和shell有接触吗 单片机uds诊断是在实车上座的吗 uds在实车上插的那口 诊断仪器是哪…

构造-析构-拷贝构造-赋值运算符重载-const成员函数

1. 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么时候都不写时&#xff0c;编译器会自动生成以下6个成员函数。 默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译器…

关于static关键字

1、static翻译为”静态” 2、所有static关键字修饰的都是类相关的&#xff0c;类级别的。 3、所有static修饰的&#xff0c;都是采用"类名.”的方式访问。 没有static的方法被称为&#xff1a;实例方法。&#xff08;对象方法&#xff0c;对象级别的方法) 。实例相关的有…

MacBook使用——彻底卸载并删除软件:NTFS for Mac

问题 之前因MacBook读写NTFS格式移动硬盘&#xff0c;我安装并使用了 Paragon NTFS for Mac &#xff0c;试用期结束后将其从【应用程序】中卸载移除了。但之后每次开机启动时&#xff0c;系统还是会弹出【激活】通知&#xff0c;如下图 解决 Step1、在用户目录下的 Library 目…

sparksql的SQL风格编程

我们前面的文章介绍了DSL风格的编程&#xff0c;现在介绍以下两种编程风格之一的sql风格编程。 sql风格编程简介 sql风格编程就是我们可以通过spark.sql来执行sql语句进行查询&#xff0c;这时的DataFrame就像是一张关系型数据表。返回的是DataFrame。 如果我们想用sql风格的…

vue2语法-简略版

内容不全&#xff0c;发现看官方文档效果更好。 介绍 — Vue.js API — Vue.js 二、Vue指令 2.1 内容渲染指令 v-text&#xff0c;v-html 内容渲染指令用来辅助开发者渲染DOM元素的文本内容&#xff0c;常用的内容渲染指令有如下2个&#xff1a; v-text&#xff08;类似in…

项目进展(十一)--重新绘制ADS1285采集板并学习

声明&#xff1a;本人水平有限&#xff0c;博客可能存在部分错误的地方&#xff0c;请广大读者谅解并向本人反馈错误。   由于项目的需要&#xff0c;上周又设计了ADS1285的采集电路板&#xff0c;最近几天焊接了一下&#xff0c;重新进行测试。由于之前对ADC采集不是重点&am…

力扣练习题2

2. 两数相加 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数…

UDP数据报套接字编程

1.1UDP编程原理 对于UDP协议来说&#xff0c;具有无连接&#xff0c;面向数据报的特征&#xff0c;即每次都是没有建立连接&#xff0c;并且一次发送全部数据报&#xff0c;一次接收全部的数据报。Java中使用UDP协议通信&#xff0c;主要基于DatagramSocket类来发送或接收数据报…