Git, 你必须要知道的那些事(1)

hg转git的那些事 其实网上的信息真的很多很多了,不管是度娘还是谷歌,搜关键字“git”,所有的信息都有了。最简单的入门也好,高级操作也罢,在这个信息爆炸的时代,想要的不想要的信息,都触手可及。那我写这篇文章的意义何在呢?——权当总结吧。 阅读详情

如果你正在使用Git,但是经常疑惑为什么有些命令达不到期望的结果,那么这篇文章你需要仔细看。对Git新手来说,按照这篇文章列出的用例按图索骥,也足以满足你日常工作的需要了。

首先列出一个经典的Git Flow,大部分命令都是有使用条件的,只有在满足使用条件的情况下,这些命令才会得到期望的结果,不同的条件下,你需要使用不同的命令。

下面就从现实需求的角度来介绍一些主要命令,这些用例基本覆盖了你日常工作最可能遇到的情况。撤销与清除是同一个意思

需   求 

Git 命令 

1 

添加本项目下所有的修改(含新增文件、新增目录)到暂存区 

Git add --all 

2 

撤销所有的没有staged过的,但是这些文件\目录已经被Git跟踪过了 

Git checkout . 

Git restore . 

3 

撤销新增的文件和文件夹,没有进入staged,也从未进入git的 

Git clean -df 

4 

进入暂存区,但还没有commit,想撤销这些已暂存的所有修改,回到未修改状态,清空暂存区和工作区 

Git reset --hard 

5 

撤销提交到暂存区的修改, 修改内容恢复到工作区 

Git reset  

6 

如果已经提交到本地仓库,想撤回这些内容(回滚一次),修改的内容仅恢复到工作区。暂存区和本地仓库则是本次提交之前的断面。 

如果使用--hard, 则工作区,暂存区和本地仓库则全部恢复到本次提交之前的那个断面 

Git reset –-soft HEAD~1 

7 

只有远程库比本地库超前(远程库有更多提交)的时候才起作用,才会用远程的断面来覆盖本地的所有断面(要求暂存区和工作区没有未提交的变化,如果暂存区或者工作区有改变,需要先用2, 3, 4处理) 

Git pull 

8 

git diff检查的是工作区与暂存区之间的差 

Git diff 

还有一种情况,如果我们使用forked repository的模式,看下图,在我们的本地所做的修改想提交到Origin,然后再从Origin上提交pull Request来合并自己的代码到Upstream的main分支的时候,upstrea上的main分支已经有很多提交了,这种情况如何处理呢?

假设我们想把我们本地的feature/My_Working_Feature 上的修改,合并到Upstream上的main分支,分两种情况:

1. 如果创建fork 仓库的时候有自动同步选项,比如下图所示,这种情况下Upstream会向Origin自动更新

于是我们要做的步骤依次如下:

a. git checkout main 

b. git pull 

c. git checkout feature/My_Working_Feature 

d. git merge main 

e. git push origin feature/My_Working_Feature 

然后在Origin上向Upstream提交pull request,把My_Working_Feature合并到Upstream上的main分支

2. 如果Upstream无法向Origin自动更新

你需要执行一次:

git remote add upstream url of your Upstream repo

然后:

a. git checkout main 

b. git pull Upstream/main

(b') git push origin main----(可选,主要是用来同步upstream与Origin)

c. git checkout feature/My_Working_Feature 

d. git merge main 

e. git push origin feature/My_Working_Feature 

然后在Origin上向Upstream提交pull request,把My_Working_Feature合并到Upstream上的main分支

上述采用merge的方式来合并,还有一种rebase的模式也可以合并。有时间再将git rebase命令

把上述内容搞清楚,你就可以很好地应付你的日常工作了。

我在M1 MacBook Pro上的git使用技巧 git的安装步骤 安装homebrew 由于M1芯片与Intel芯片存在区别,MacOS先要在opt目录下建立homebrew文件夹,接着将目录所属主改为Mac当前用户,方便以后直接用brew命令进行install软件,然后复制下载链接,在终端输入后进行安装并解压,随后再将配置文件里的环境变量改过来,保存并使环境变量生效,然后就可以测试Homebrew是否安装成功,以便后续安装git。以下是关键步骤的终端执行代码: $ cd ~ $ sudo mkdir -p /opt/homebrew $ cd /opt 阅读详情

相关推荐

Centos6.5将git 1.7.1升级到git 2.2.1

使用源码编译的方式安装git 2.2.1。 一、环境准备        安装编译git 2.2.1需要使用到一些软件工具,需要提前先安装好这些软件工具,按顺序运行如下命令: #yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc #yum install gcc perl-Ext

Veechange的博客 3742

转载|git reflog 你不知道的事

A:“一个前端小白,她对git不熟悉,辛辛苦苦加班一星期敲的代码没了。” B:“噢?怎么没了” A:“在终端输入git log,列出所有的commit信息,如下图:” A:“commit的信息很简单,就是做了6个功能,每个功能对应一个commit的提交,分别是feature-1 到 feature-6” B:“好的 然后呢” A:“然后前端小白坑爹了,执行了强制回滚,如下:” git reset...

星辰和夕月的博客 262

fpga在线升级 linux_仅5000行Verilog代码、可在FPGA上跑轻量级Linux系统的RISC-V内核

本文发布于www.hackster.io,由东京理工大学的计算机学院开发,专用于教学与加速用(苏老师也一直认为这是RISC-V当前的主要方向)。目前市场上开源的RISC-V内核已经很多,但很少有公开的RISC-V计算系统是非常轻型且能跑Linux系统的。这一款RISC-V内核就可以运行在FPGA上,用Verilog编写的,需要很少硬件的资源就能跑起来,所以可以运行在一个低成本的FPGA上。来看一下...

weixin_34083807的博客 1866

Git天天用,不得不看的那些事

Git天天用,不得不看的那些事

看了就会暴富的博客! 5352

ADB命令解锁Android手机屏幕的3种实用方法(附详细步骤)

本文详细介绍了在Android手机屏幕失灵或密码遗忘时,利用ADB命令解锁屏幕的三种实用方法。包括通过ADB模拟输入事件、移除锁屏认证文件(需Root权限)以及结合恢复模式抢救数据。文章提供了详细的操作步骤与风险提示,强调提前开启USB调试的重要性,是Android用户应对紧急锁屏情况的有效技术指南。

weixin_29229055的博客 917

是德频谱分析仪相位噪声测量实战指南:从原理到精准操作

本文详细介绍了是德频谱分析仪在相位噪声测量中的实战操作指南,从基础概念到高级技巧全面解析。通过5G基站时钟测量等实际案例,展示如何利用是德N9030B等设备精准测量相位噪声,并分享设备预热、参数设置、环境干扰排除等关键操作要点,帮助工程师提升测量精度和效率。

jenkins8butler的博客 229

你必须知道的Git命令

虽然今天很忙,但是还是不忘在掘金皮,一边写代码,一边皮,一边写笔记,突然停顿了一会发现,我居然骗了个小姐姐,咳咳,中奖了,今天真是开心的一天 这篇笔记是为了学习Git知识而收集总结的,主要是看受一篇帖子《你可能不知道的15条Git命令》的影响,才想记录这篇笔记的,如有雷同,纯属巧合。 Git 是一个分布式版本控制软件, 最初目的是为更好地管理Linux内核开发而设计。 来源:维基百科 - G...

weixin_34315189的博客 152

低功耗蓝牙技术 > GAP和GATT介绍

GAP和GATT作为蓝牙协议栈中的关键协议,为BLE设备之间的通信提供了标准和框架。GAP主要负责设备的连接、广播和角色定义,而GATT则定义了BLE设备之间的具体通信方式,通过Services和Characteristics实现数据的传输和交换。在蓝牙技术的发展中,GAP和GATT两个协议扮演着关键的角色,为BLE(低功耗蓝牙)设备之间的通信提供了规范和框架。GATT连接是建立在GAP协议之上的,是一种独占连接,一个BLE外设同时只能连接一个中心设备。连接建立后,通信是双向的,不同于GAP的单向通信。

DL_62532的专栏 4029

【git】关于git二三事

Git是分布式版本控制系统,每个人的电脑就是一个完整的版本库。那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。主要工作流程:Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库。

前端代码小白的日常博客 1323

在 SAP 中修改 Profile 文件中的主机名需要谨慎操作,需需确保所有相关配置保持一致

在SAP系统中修改Profile文件主机名需谨慎操作,主要步骤包括:1)停止相关SAP服务;2)重命名并编辑实例级Profile文件(如ER1_D00_OLDHOST改为ER1_D00_LRPSAP),修改所有含旧主机名的参数;3)可选更新默认Profile文件;4)在Windows系统中调整注册表配置;5)验证一致性后重启服务。关键注意:保持大小写统一、修改前备份文件、集群环境需同步所有节点。通过系统日志确认新主机名生效且无报错。

金牌架构师 1049

CKA-CN考试之路----16

所以结合本题,如果有多个文件中都存在同一个值,务必统一,或者修改最后一个次序的文件。中以不同的文件名来区分不同目的的配置会更有利于阅读.就像本题中的。但当有多个文件中存在同一个参数的不同值,最后会生效哪个值?中,但随着配置越来越多不怎么容易阅读.当多个文件同时存在一个参数,但值又不同。有时候我们会将所有内存参数全部写在。确认服务状态(2个红框中的内容)

Q先生 299

关于Git我们不得不知道的事(一)

一.什么是Git? Git是目前世界上最先进的分布式版本控制系统(没有之一)。 Git可以协助我们很方便的管理我们的项目,我们随时可以找回(或者回到)我们之前任何一个时刻的项目;还可以让同事或者开发小组成员一同开发;是不是很方便! 二.Git的使用方法 安装Git(这些在官网教程写的很清楚就不啰嗦再写一遍了) 获取Git仓库 有两种取得 Git 项目仓库的方法。 第一...

XIAOYANG55555的博客 199

RK3588平台MIPI DSI屏幕调试记录

本文是基于RK3588平台,MIPI屏调试总结。调试过程中遇到的问题:一开始很久没亮,测量了电源电压和波形都正常。后来换了一组板子和屏幕做对比。最后是因为屏幕的座子没焊接好,二是接MIPI屏幕的排线太长会影响数据传输。换了一根短的线之后屏幕亮起。vp2vp3。

bingdund的博客 1389

关于Git的二三事

前言 这是一个关于Git的小文章。 Git是什么?Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。参照:关于GIT开发的背景故事 GIT的概念 代码存放的3个地方: Workspace: 工作区,就是你平时存放项目代码的地方 Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息 Repository: 仓库区

404 Not Found 518

【Unity3D框架】GameFramework框架完全教程《全网最全》-专栏文章目录

最近准备学习框架,了解到GameFramework框架是国产Unity3D框架,准备学习一下,但是奈何全网关于这个框架的教程实在太少。为了让自己学习方便一些,也为了让后来者乘凉。将框架以自己的理解整理目录,并且补全教程。觉得教程有帮助别忘了一键三连哦。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

关于git那些事

关于git那些事git的知识点总结什么是gitgit的一些常用操作拉取项目项目分支冲突解决代码回滚 git的知识点总结 什么是git git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 我的理解就是开发过程中,帮助我们团队更好的管理代码,协同开发。 git的一些常用操作 拉取项目 通过命令拉取 先复制git代码地址通过git命令拉取 右键单击选择Git Bush Here,输入命令,后面带上复制来的代码地址 git clone https://gitee.com

weixin_43678301的博客 495

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

如何知道自己电脑是否安装了Git

如何知道自己电脑上是否安装了git(mac)1.什么是git2.Git 与 SVN的区别3.如何在Mac上查找是否安装了git 最近在倒腾git,想学习自动化测试,所以先从一些开发需要用到的工具开始 1.什么是git Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本...

lucky多多的博客 4万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

关于git你需要知道的

版本控制相信大家都不陌生,从CVS,到SVN,再到现在越来越受到重视的git。关于它们三者特别是后两者的对比,我觉得有必要说一下。 现在很多人,很多项目从svn转到了git,相信还是有一部分人是被动转到git的,比如说项目的改变,其中又有一部分人可能对git的好处并不是十分了解,以及git也不太了解。我们在使用一个东西的时候,常常会进入到我会用就行了,当我会用了,我就很容易就懂,但是实际情况并非

formyth的专栏 434

关于 Git 的那些事

本文主要记录学习 Git 的过程。因为是学习笔记,可能有描述不全面或是不准确的地方,欢迎在评论区指正。 本文的思维导图如下: 1. Git 安装和升级 安装应该不用多说了,主要讲一下升级。Linux 和 Mac 都有包管理器,升级是很方便的,关键是 windows 并没有这类东西,那么怎么升级呢? 这里首先要通过 git version 查看你当前的 Git 版本是多少,如果版本: <= 2.14.1 :不要多想,老老实实卸载旧版本,安装新版本吧。。。 2.14.2 ~ 2.16.1 :直...

Chorer的博客 739

Git 那些事

转载原文链接:https://gitbook.cn/m/mazi/article/5bb88acc3b8181150e6abb93?utm_source=weixinNotification 随着秋招进行中,诸多大学生以及转行做 IT 的技术者开始应聘工作,然而当他们面试被问到 Git 时,却对其一无所知。那么 IT 工作者团队开发是怎样的呢?目前的软件开发项目通常是由一个研发小组(团队)共同分析...

蜡笔小浪的博客 179

Git 这点事

我参加工作已经半年多了,再过几个月就1年了。但是,我git用的毫不客气的说,就是新手,纯新手的那种。曾经一度git把我搞的晕头转向,我也曾经找了很多资料,但是结果都非常不理想,要么,写的太高深,看不懂,要么就是太简单,非常的不理想。今天周末,找了一个高手交流了一下,懂了很多,特意记录下来,方便自己以后查看,也方便需要的人查看。   首先,git是目前世界上最先进的分布式版本控制系统(没有之一)。

yx1166的博客 695

Git那些事002

关于修改git中已提交commit的邮箱和用户名,很想完全转载这篇文章,因为对于少数用户名的修改来说,是很干净的修改。但是生怕哪天这篇文章不见了,就摘抄其中关键的步骤。 # 第一步,(n)代表提交次数 git rebase -i HEAD~n //备注:也可通过HASH来访问,同时要表明次...

chenjian1726的博客 158

使用Git 中要注意的事

在 LinuxCon 北美会议上 FutureAdvisor 的 Corey Quinn 说:“Git 的确让你可以做一些超级强大的事。‘强大’,在这次讲演中,这是一种说你愚蠢的委婉说法”。在使用 Git 时,谁没有经历让你感觉自己像个傻子的时刻?当然,Git 是很棒的,每个人都在使用它,你可以用几个基本命令完成你的大部分工作。但它也有一些强大的功能,让我们觉得我们不知道我们在做什么。 ...

weixin_41535887的博客 469

关于Git你不得不在知道的

Git使用解析(学习使用详细解析 )1 获取 Git 仓库2 Git基础3 Git分支 )) 1 获取 Git 仓库 获取 Git 仓库 通常有两种获取 Git 项目仓库的方式: 1 将尚未进行版本控制的本地目录转换为 Git 仓库; 2.从其它服务器 克隆 一个已存在的 Git 仓库。 两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。 1)在已存在目录中初始化仓库 首先需要进入该...

Jay的博客 453

GIT知道这些就够了

git 知道这些就够了 『Git』知道这些就够了 git status 可以查看当前仓库的状态信息。 如果在仓库创建两个新文件,index.html 和 index.js。 在执行一下 git status。 git add <文件名> 输入git add <文件名> 可以将单个文件加入暂存区。 再次查看状态:发现 index.html 绿了 如果要把全

“跟他人学,和自己比” 755
上一篇: STP/RSTP那点事-2
下一篇: 左值/右值/左值引用/右值引用/万能引用/移动语义/完美转发,你真的懂了吗?
SONG_CA
博客等级 码龄24年 74粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值