快速掌握Git基本用法

代码管理工具——Git基本使用方法 本文介绍了Git版本控制工具的基本概念、安装配置及核心操作命令。首先对比了Git与SVN的架构差异,强调Git的分布式特性优势。随后详细讲解了Git的核心术语(如仓库、分支、提交等)和基础Linux命令。文章重点列举了Git常用操作命令,包括配置、仓库管理、文件提交、分支操作、远程协作等,并提供了典型使用场景示例。最后推荐了扩展学习资源,帮助开发者快速掌握Git基础技能,适应团队协作开发需求。全文旨在为从SVN转向Git的开发人员提供实用指南。 阅读详情

Git是什么?

Git是一款开源的分布式版本控制系统(Distributed version Control System)。

什么是版本控制?为什么需要?

如果你是一个RD,那就应该知道,码农最讨厌的合作伙伴就是产品经理,因为他们总是三天两头的改变主意,不珍惜码农们的辛苦付出。举个例子,产品经理提出一个新需求,码农Lucy通宵达旦,辛苦奋战几晚,终于用方案A完美实现,本想高兴的找产品经理验收,可是产品经理看后,不仅不满意,还痛骂Lucy一顿,什么狗屎,让其该方案。于是Lucy回来愤然删掉A方案,转而实现了B方案,然后等产品经理过目后,后者突然说,我突然觉得A方案更合理,改回A吧... … 此时Lucy脑子里肯定是一万个...也会后悔为什么那么..竟然把A删掉了。

那么问题来了,如果之前lucy使用了版本管理控制,只需要几行命令就可以找回A方案了。

好了,进入正题,版本控制,就是这样一个机制,对程序代码,配置文件以及说明文档的变更历史进行管理和记录,实现随时查看,随时回退到某个版本。

什么是分布式版本控制?

说到分布式,自然有与其相对应的集中式。两者分别以Git和SVN为代表。

集中式版本控制,特点是有单一的集中管理服务器,保存所有文件的修订版本,所有的文件。客户端的电脑并不会保存历史版本,所以想查阅某个历史版本,必须联网到服务器,才可以查阅。这样会受网速的影响,以及担负服务器故障的风险;

与之相比,分布式版本控制,则没有集中管理的服务器,每个人的电脑都有一个完整的版本库,我们可以在本地修改,提交,查阅历史版本。

用过Git的人,这时可能会有一个疑问了,我们修改code后,会需要把code push到远程仓库,这个远程仓库是不是集中管理的服务器呢?No,其实这只是分布式控制管理系统的一个节点而已,为了协作方便,团队合作,我们都需要在这个远程仓库上面进行交换各自的“修改”而已,轻松实现‘’改动‘’共享。

基本概念

工作目录(工作copy):用于存放数据的本地工作目录;

暂存区(Index):用于存放待提交数据的缓存区;

本地仓库:远端库的一个完整拷贝。包括所有文件的修改记录,分支信息等。

远程仓库:本地仓库clone的来源;

快照(snapshot):版本库某个时间点所有文件的集合

全球版本号(commitID):Git库的版本号,是通过SHA-1算法根据库中的所有内容计算出来的一个40位的哈希值,这个哈希值是全球唯一的,基本只需要前6位就可以唯一标识了。

Git修改文件的流动

首先,我们所有的修改都是在工作目录中进行的,修改完以后首先需要添加到暂存区,然后再提交到本地仓库。提交完成以后会产生唯一的CommitID,标识当次提交。在之后的操作中,可以通过commitID实现回滚到某次提交状态。最后,我们需要将本地仓库的提交记录推送到远程仓库,实现分享协作。

基本操作:

  1. 仓库初始化,一版两种方式

一是,直接在当前目录初始化,命令:

git init

二是,从远程仓库clone,命令:

git clone <中心库名称地址> <本地工作目录名称>

     2. 添加文件到暂存区

实际工作中,我们初始化仓库后,就会修改 or 添加 or 删除仓库里的文件,当我们完成修改后,我们需要将这些改动,        添加到暂存区,命令如下

Git add <文件名>   //添加某个文件

Git add –A or git add .  //添加所有文件

    3. 提交到本地仓库

命令:

Git commit –m ‘’提交信息”

    4. 更新本地分支

1) 在将本地仓库的提交记录(commitID)push到远程仓库之前,最好先pull远程仓库对应的“追踪分支”的更新,命令:

Git pull <远程主机名> <远程分支名>:<本地分支名>

作用是,拉远程主机某个分支的更新,并与本地的指定分支合并,很多时候,代码冲突是需要这个时候解决的。其实,     远程分支和本地分支之间可以建立一种追踪关系(tracking),在使用git clone初始化的时候,所有本地得知默认与远程仓 库的     同名分支建立追踪关系。例如,本地的master自动追踪origin/master分支;

其中,origin一般指原始仓库地址的别名

2) 另外,也可以手动建立这种分支追踪,命令

Git branch –track <本地分支> <远程分支>

如果已经建立了追踪关系,在pull时就可以省略远程分支名,直接

Git pull origin

如果当前分支只有一个追踪分支,那么别名也可以省略,直接

Git pull

     5. 本地仓库提交记录推送到远程仓库

为了实现团队协作,我们的改动需要推到远程仓库,以与团队其他成员合并,命令

Git push <远程主机名> <本地分支名>:<远程分支名>

和git pull一样,如果远程分支和本地分支之间已经建立追踪关系,可以省略远程分支名

Git push <远程主机名> <本地分支名>

这里需要注意,如果省略的是本地分支名,就相当于把一个空的分支推到了远程分支,这个操作就相当于删除远程分支

Git push <远程主机名> <远程分支名>

Git push <远程主机名>  --delete <远程分支名>

      6. 查看提交历史

Git log

      7. 代码回滚

有两种方式:git revert或者git reset

1) Git revert是提交回滚,即忽略指定的版本,然后提交一个新的版本,新的版本中会删除指定的版本。注意:revert                    是会产生一次新的提交的

Git revert <commitID>

2)Git reset的作用是重置到指定的版本,通常是配合一些参数使用

    (1)默认是--soft,所有commit都会退回到git缓冲区

    (2)--hard,则是将所有的commit的修改直接丢弃

Example:

Git reset --hard HEAD^ //会退到上个版本

Git reset --hard <commitID> //回退or前进到指定commitID

3) 人生总是无常的,有时候你回滚玩代码,可能有后悔了,又想回滚到之前的版本,怎么办? Git reflog可以帮助你。                  你用git reflog打印你的每一次操作,找到你的操作id,就可以轻松回滚之前的版本了,步骤如下:

Git reflog //查看你回滚操作,找回回滚操作的commitID

Git reset –hard <commitID> //回退到指定的回滚版本

 

希望以上的总结,能对你认识和使用Git有所帮助。

git log 用法详解 是一个极其灵活和强大的工具,能够帮助你深入理解和管理项目的版本历史。通过结合使用不同的选项和参数,你可以根据需要定制输出,从而更高效地进行开发工作。可以帮助开发者快速找到特定的提交、分析代码更改的历史、以及理解项目的发展轨迹。这会列出所有提交记录,从最近到最远排列,每条记录包含提交哈希、作者信息、日期和提交消息。是 Git 中一个非常强大的命令,它用于显示仓库的提交历史。通过不同的选项和参数,如果你希望每行只显示一次提交,并且只包括提交哈希和提交消息,可以使用。如果你想查看每个提交的具体更改,可以使用。 阅读详情

相关推荐

NACA0012的O型网格求解

本篇文章采用偏微分方程数值解法生成NACA0012翼型O型网格,并采用速度势方程求解绕NACA0012翼型迎角为0度时的低速不可压无粘流场。 文章目录一、求解网格1.翼型2.远场3.网格4.迭代5.求解二、求解流场1.偏微分方程2.迭代求解流场三、求解参数1.偏微分方程2.迭代求解四、导出数据 一、求解网格 1.翼型 本次求解网格和流场等采用的是NACA0012(修形)对称翼型,在NACA四位翼型中,第一位数字代表的是弯度,第二位数字代表的是弯度位置,后两位数字代表的是厚度,由于本次翼型的前两位数字都为0,

m0_50746433的博客 6673

一文带你学会Git的基本使用⭐⭐⭐(超简洁,避免冗余)

Git 是一个分布式版本控制系统,用于管理和跟踪代码或文件的变更。它可以记录文件的每一次修改,帮助开发者协作、管理代码版本、追踪项目历史,并在需要时恢复到之前的版本。Git 是开源的,由林纳斯·托瓦兹(Linus Torvalds)在 2005 年开发,最初用于 Linux 内核开发。如今,它广泛应用于各种软件开发项目中,尤其是在团队协作开发中。知道上述内容就行了。工作区是你当前正在进行开发和编辑文件的地方。它就是你的项目文件所在的目录,包含你正在修改、编辑、编写的所有文件。

a131529的博客 3万+

嵌入式开发语言-C语言编程

C语言编程概述环境在Windows上构建C语言的环境安装在Mac上构建C语言的环境安装 概述 “C语言”被称为适合嵌入式系统开发的编程语言之一。 C语言在一般的编程中也是熟悉的开发语言,但实际上,如果试着使用C语言制作微型计算机的控制程序等,就必须使用与“普通的C程序”不同的使用方法。 作为一般的C语言的学习方法,使用“printf”“scanf”等标准函数的程序开发是固定的,但这些都是以UNIX和Windows等环境上的应用程序开发为前提的。 对此,没有显示器和键盘的嵌入式系统的微型计算机控制程序,该如何

编程老王 7970

git的了解和开发安装 以及分支合集

git的了解和开发安装 以及分支合集

qq_38806666的博客 1338

关于小样本学习综述论文的总结

对小样本学习综述的个人总结

qq_46176086的博客 5449

手把手教你用差分放大电路搭建LC振荡器(实测频率误差分析)

本文通过一个差分放大电路搭建LC振荡器的实践案例,深入分析了实测频率与理论值产生显著误差的原因。核心在于共模电感的互感效应改变了谐振回路的等效电感,导致频率偏差。文章提供了从电路搭建、误差根源剖析到波形优化与稳定性提升的完整解决方案,帮助电子爱好者深入理解模拟电路的实际行为。

svm4gardener的博客 525

Git基本使用(很详细)

详细的git教程,一直到连接远程仓库

qq_45796592的博客 15万+

nbiot和2g_浅谈NBIOT

一、什么是NBIOT?1、概念窄带物联网(Narrow Band Internet of Things, NB-IoT),NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,使用License频段,可采取带内、保护带或独立载波等三种部署方式,与现有网络共存。可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。2、NBIOT的特点和目标(1)超强覆盖:相对GPRS来...

weixin_39534100的博客 1701

git的基本使用

版本:软件版本,文件版本,保存重要的历史记录,恢复数据版本控制软件的基础功能:保存和管理文件,提供客户端工具访问,提供不同版本文件比对功能。

2301_79568779的博客 1360

Win10+pycharm+conda 配置Siammask 过程记录(新手向)

我们跑动demo 需要配置两个相关的文件这两个文件需要用 git 进行下载,对于不熟悉git的小伙伴 我这里给出连接,大家可以直接下载即可,并将其配置在 experiments文件夹下然后大家再需要在设置参数参数这里给出了。

C1137577723的博客 549

[QMT量化交易小白入门]-十二、QMT回测龙头打首板和连板的策略

class a():passA = a() #创建空的类的实例 用来保存委托状态field_list定义了需要的市场数据字段,而类a用于保存交易状态。

木头大左的博客 4735

Git用法

Git用法 1.建仓库 先要有个仓库,具体怎么建立就不在这里讲解了,仓库只存放代码的仓库,使用码云 https://gitee.com/建仓库。 2.安装 Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本 管理 安装《Git-2.21.0-64-bit.exe》一路 NEXT 就可以了。 判断安装是否成功,只要在空白的位置点击右键,会出现“Git Bash He...

kings_coming的博客 291

极验验证码: 一点即过验证(鼠标轨迹分析)

2、第一个验证接口分析(第一个w值还原) 3、第二个验证接口(第二个w值还原)这里定位w生成跟上篇文章一样,就不展开了;主要分析tt值(鼠标轨迹)的生成逻辑

qq_49268524的博客 1003

关于git的基本用法

关于Git的基本用法

m0_62111965的博客 1150

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

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

git的基本操作

先简单介绍一下SVN和GIT的本质区别 svn 只有远程仓库 git  有远程仓库 也有  本地仓库 总体流程是这样的 1.clone 下载远程仓库代码  git colone 远程仓库地址 2.git add 文件 3.git commit  推送到本地仓库 然后把代码再推送到远程仓库 4.git push 5.git pull//把远程代码更新到本地仓库

jitongliang的博客 332

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

初探Git git基本用法

Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project # 创建项目目录 cd project # 进入到项目目录 git init # 初始化 git 仓库。此命令会在当前目录新建一个 .git 目录,用于存储 git 仓库的相关信息 初始化提交 touch README ...

143

git的基本用法总结

下载项目 git clone 阿里云地址 更新本地代码git pull origin master 如果使用git pull origin master没办法拉取远程代码。可以使用下面的方法拉取远程的某个文件 git checkout pages/kykpage/markpapercheck.html git status –s 可以看到本地修改了远程的哪些代码。 比较本地代码和服务器代码,具体的文件修改了哪些部分。 git diff 文件路径 上传代码步骤:一张...

肖肖肖丽珠的博客 281

Git基本使用方法——clone项目到本地

起步初次使用需要设置姓名和邮箱git config –global user.name “你的姓名” git config –global user.email abc@example.comclone 项目用于把一个GitHub是的项目clone(下载)到本地变为本地仓库 git clone git@github.com:jirengu/blog.git cd blog 添加文件并

kuuhakuna的博客 5万+

Git常用命令大全:git命令基本用法

Git 常用的六个命令是什么?·“git clone”克隆代码;·“git log”查看日志;·“git tag”查看标签;·“git branch”查看分支;·“git branch -a”查看远程分支;·“git pull”拉取。

hejinde的专栏 1281

git基本用法

Git基本常用命令如下:    mkdir:         XX (创建一个空目录 XX指目录名)    pwd:          显示当前目录的路径。    git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。    git add XX       把xx文件添加到暂存区去。    git commit –m “XX”  提交文件 –m

Ryan的博客 244

Git基础用法

Git基础用法什么是GitSVN与Git区别功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 什么是Git 你好!别问我...

我爱流氓兔 260

git基本使用

合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。-----------送给在码农之路上搬砖的自己。还没有理解透git的原理,目前只是停留在git的基本用法上,先总结git常用的操作指令。1. 先切换到一个分支上(即你需要在该分支基础上进行新功能开发的分支),checkout as new branch,将远程的分支下载到本地,然后在本地进行新功能开发,push的时候将会使新建的分支提交...

izuiaicy的博客 280

git 的基本命令

git下载地址 :https://git-scm.com/download安装只需要点击下一步即可使再次操作不用再次输入账号和密码,设施其有效时间账号密码的有效时间设置永久保存git config --global credential.helper store临时存储(默认为15分钟)git config –global credential.helper cache修改默认保存时间一小时(36...

weixin_39762926的博客 350

Git基本命令

giee使用ssh 生成公钥私钥 ssh-keygen -t rsa 一直回车即可 会默认目录.ssh目录生成一个默认的id_rsa文件和 id_rsa.pub

weixin_46633487的博客 178

git基本命令总结

一个git学习新手的总结和理解,方便以后查阅,欢迎大家一起讨论学习,如有错误之处,谢谢指出           工作区、暂存区(stage)、版本库概念、仓库(master)、add、 commit 、HEAD概念理解 基本命令: mkdir  file -------------------------- 创建一个目录(file为目录名,一般路径为

jelly_9的博客 417
上一篇: 关于苹果MFI认证那些事
下一篇: 蓝牙协议分析(10)_BLE安全机制之LE Encryption
no输给现实
博客等级 码龄17年 315粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值