良心总结!Git 各指令的本质,真是通俗易懂啊

IFIX数据库Datebase当前值问号 IFIX数据库Datebase当前值问号,已解决,亲测有效 在OPC PowerTool有数据的情况下,IFIX数据库Datebase当前值显示???? 问题分析及解决方法 我的IFIX5.8版本,其它版本可参考 打开IFIX工作台:应用程序–任务控制–I/O驱动–OPC Client;查看OPC驱动是否被禁用,点击启动,变成激活状态即可;若点击启动无法激活OPC驱动,需要重新安装OPC驱动,方法如下: 下载I/O Driver文件 下载链接:https://download.youkuaiyun.com/down 阅读详情
来源:juejin.cn/post/6895246702614806542

1前言

作为当前世界上最强大的代码管理工具Git相信大家都很熟悉,但据我所知有很大一批人停留在clone、commit、pull、push...的阶段,是不是对rebase心里没底只敢用merge?碰见版本回退就抓瞎?别问我怎么知道的,问就是:“我曾经就是这样啊~~”。针对这些问题,今天我就将这几年对Git的认知和理解分享出来,尽可能的从本质去讲解Git,帮助你一步一步去了解Git的底层原理,相信读完本篇文章你便可以换种姿态,更加风骚得使用Git各种指令。

2目录

  1. 基本概念

  • 1.1 Git的优势

  • 1.2 文件状态

  • 1.3 commit 节点

  • 1.4 HEAD

  • 1.5 远程仓库

  1. 分支

  • 2.1 什么是分支?

  1. 命令详解

  • 3.1 提交相关

  • 3.2 分支相关

  • 3.3 合并相关

  • 3.4 回退相关

  • 3.5 远程相关

31. 基本概念

1.1 Git的优势

Git是一个分布式代码管理工具,在讨论分布式之前避免不了提及一下什么是中央式代码管理仓库

  • 中央式:所有的代码保存在中央服务器,所以提交必须依赖网络,并且每次提交都会带入到中央仓库,如果是协同开发可能频繁触发代码合并,进而增加提交的成本和代价。最典型的就是svn

  • 分布式:可以在本地提交,不需要依赖网络,并且会将每次提交自动备份到本地。每个开发者都可以把远程仓库clone一份到本地,并会把提交历史一并拿过来。代表就是Git

那Git相比于svn有什么优势呢?打个比方:"巴拉巴拉写了一大堆代码,突然发现写的有问题,我想回到一个小时之前",对于这种情况Git的优势就很明显了,因为commit的成本比较小并且本地会保存所有的提交记录,随时随刻可以进行回退。在这并不是说svn的不能完成这种操作,只是Git的回退会显得更加的优雅。Git相比于中央式工具还有很多优点,就不一一列举了,感兴趣的可自行了解。

1.2 文件状态

在Git中文件大概分为三种状态:已修改(modified)、已暂存(staged)、已提交(committed)

  • 修改:Git可以感知到工作目录中哪些文件被修改了,然后把修改的文件加入到modified区域

  • 暂存:通过add命令将工作目录中修改的文件提交到暂存区,等候被commit

  • 提交:将暂存区文件commit至Git目录中永久保存

1.3 commit节点

为了便于表述,本篇文章我会通过节点代称commit提交

在Git中每次提交都会生成一个节点,而每个节点都会有一个哈希值作为唯一标示,多次提交会形成一个线性节点链(不考虑merge的情况),如图1-1

1d59d2e1f7abee176ab2643d9e9a31b1.jpeg

节点上方是通过 SHA1计算的哈希值

C2节点包含C1提交内容,同样C3节点包含C1、C2提交内容

1.4 HEAD

HEAD是Git中非常重要的一个概念,你可以称它为指针或者引用,它可以指向任意一个节点,并且指向的节点始终为当前工作目录,换句话说就是当前工作目录(也就是你所看到的代码)就是HEAD指向的节点。

还以图1-1举例,如果HEAD指向C2那工作目录对应的就是C2节点。具体如何移动HEAD指向后面会讲到,此处不要纠结。

同时HEAD也可以指向一个分支,间接指向分支所指向的节点

1.5 远程仓库

虽然Git会把代码以及历史保存在本地,但最终还是要提交到服务器上的远程仓库。通过clone命令可以把远程仓库的代码下载到本地,同时也会将提交历史、分支、HEAD等状态一并同步到本地,但这些状态并不会实时更新,需要手动从远程仓库去拉取,至于何时拉、怎么拉后面章节会讲到。

通过远程仓库为中介,你可以和你的同事进行协同开发,开发完新功能后可以申请提交至远程仓库,同时也可以从远程仓库拉取你同事的代码。

注意点

因为你和你的同事都会以远程仓库的代码为基准,所以要时刻保证远程仓库的代码质量,切记不要将未经检验测试的代码提交至远程仓库

42. 分支

2.1 什么是分支?

分支也是Git中相当重要的一个概念,当一个分支指向一个节点时,当前节点的内容即是该分支的内容,它的概念和HEAD非常接近同样也可以视为指针或引用,不同的是分支可以存在多个,而HEAD只有一个。通常会根据功能或版本建立不同的分支

那分支有什么用呢?

  • 举个例子:你们的 App 经历了千辛万苦终于发布了v1.0版本,由于需求紧急v1.0上线之后便马不停蹄的开始v1.1,正当你开发的兴起时,QA同学说用户反馈了一些bug,需要修复然后重新发版,修复v1.0肯定要基于v1.0的代码,可是你已经开发了一部分v1.1了,此时怎么搞?

面对上面的问题通过引入分支概念便可优雅的解决,如图2-1

cd2b5e3cdd6cded80c0516419697881c.jpeg
  • 先看左边示意图,假设C2节点既是v1.0版本代码,上线后在C2的基础上新建一个分支ft-1.0

  • 再看右边示意图,在v1.0上线后可在master分支开发v1.1内容,收到QA同学反馈后提交v1.1代码生成节点C3,随后切换到ft-1.0分支做bug修复,修复完成后提交代码生成节点C4,然后再切换到master分支并合并ft-1.0分支,到此我们就解决了上面提出的问题

除此之外利用分支还可以做很多事情,比如现在有一个需求不确定要不要上线,但是得先做,此时可以单独创建一个分支开发该功能,等到啥时候需要上线直接合并到主分支即可。分支适用的场景很多就不一一列举了。

注意点

当在某个节点创建一个分支后,并不会把该节点对应的代码复制一份出来,只是将新分支指向该节点,因此可以很大程度减少空间上的开销。一定要记着不管是HEAD还是分支它们都只是引用而已,量级非常轻

53. 命令详解

3.1 提交相关

前面我们提到过,想要对代码进行提交必须得先加入到暂存区,Git中是通过命令 add 实现

添加某个文件到暂存区:
git add 文件路径
复制代码
添加所有文件到暂存区:
git add .
复制代码

同时Git也提供了撤销工作区和暂存区命令

撤销工作区改动:
git checkout -- 文件名
复制代码
清空暂存区:
git reset HEAD 文件名
复制代码
提交:

将改动文件加入到暂存区后就可以进行提交了,提交后会生成一个新的提交节点,具体命令如下:

git commit -m "该节点的描述信息"
复制代码

3.2 分支相关

创建分支

创建一个分支后该分支会与HEAD指向同一节点,说通俗点就是HEAD指向哪创建的新分支就指向哪,命令如下:

git branch 分支名
复制代码
切换分支

当切换分支后,默认情况下HEAD会指向当前分支,即HEAD间接指向当前分支指向的节点

git checkout 分支名
复制代码

同时也可以创建一个分支后立即切换,命令如下:

git checkout -b 分支名
复制代码
删除分支

为了保证仓库分支的简洁,当某个分支完成了它的使命后应该被删除。比如前面所说的单独开一个分支完成某个功能,当这个功能被合并到主分支后应该将这个分支及时删除。

删除命令如下:

git branch -d 分支名
复制代码

3.3 合并相关

关于合并的命令是最难掌握同时也是最重要的。我们常用的合并命令大概有三个merge、rebase、cherry-pick

merge

merge是最常用的合并命令,它可以将某个分支或者某个节点的代码合并至当前分支。具体命令如下:

git merge 分支名/节点哈希值
复制代码

如果需要合并的分支完全领先于当前分支,如图3-1所示

d989daed07b02e95e2fc80287ca90511.jpeg

由于分支ft-1完全领先分支ft-2即ft-1完全包含ft-2,所以ft-2执行了“git merge ft-1”后会触发fast forward(快速合并),此时两个分支指向同一节点,这是最理想的状态。但是实际开发中我们往往碰到是是下面这种情况:如图3-2(左)

dc8af01ec3d3999a056cdcd361d49719.jpeg

这种情况就不能直接合了,当ft-2执行了“git merge ft-1”后Git会将节点C3、C4合并随后生成一个新节点C5,最后将ft-2指向C5 如图3-2(右)

注意点:

如果C3、C4同时修改了同一个文件中的同一句代码,这个时候合并会出错,因为Git不知道该以哪个节点为标准,所以这个时候需要我们自己手动合并代码

rebase

rebase也是一种合并指令,命令行如下:

git rebase 分支名/节点哈希值
复制代码

与merge不同的是rebase合并看起来不会产生新的节点(实际上是会产生的,只是做了一次复制),而是将需要合并的节点直接累加 如图3-3

030005ea7e179745c1cc3e926ad19bdd.jpeg

当左边示意图的ft-1.0执行了git rebase master后会将C4节点复制一份到C3后面,也就是C4',C4与C4'相对应,但是哈希值却不一样。

rebase相比于merge提交历史更加线性、干净,使并行的开发流程看起来像串行,更符合我们的直觉。既然rebase这么好用是不是可以抛弃merge了?其实也不是了,下面我罗列一些merge和rebase的优缺点:

merge优缺点:

  • 优点:每个节点都是严格按照时间排列。当合并发生冲突时,只需要解决两个分支所指向的节点的冲突即可

  • 缺点:合并两个分支时大概率会生成新的节点并分叉,久而久之提交历史会变成一团乱麻

rebase优缺点:

  • 优点:会使提交历史看起来更加线性、干净

  • 缺点:虽然提交看起来像是线性的,但并不是真正的按时间排序,比如图3-3中,不管C4早于或者晚于C3提交它最终都会放在C3后面。并且当合并发生冲突时,理论上来讲有几个节点rebase到目标分支就可能处理几次冲突

对于网络上一些只用rebase的观点,作者表示不太认同,如果不同分支的合并使用rebase可能需要重复解决冲突,这样就得不偿失了。但如果是本地推到远程并对应的是同一条分支可以优先考虑rebase。所以我的观点是 根据不同场景合理搭配使用merge和rebase,如果觉得都行那优先使用rebase

cherry-pick

cherry-pick的合并不同于merge和rebase,它可以选择某几个节点进行合并,如图3-4

命令行:

git cherry-pick 节点哈希值
复制代码
c03df6843cb5a36ab9488beacfdfd97c.jpeg

假设当前分支是master,执行了git cherry-pick C3(哈希值),C4(哈希值)命令后会直接将C3、C4节点抓过来放在后面,对应C3'和C4'

3.4 回退相关

分离HEAD

在默认情况下HEAD是指向分支的,但也可以将HEAD从分支上取下来直接指向某个节点,此过程就是分离HEAD,具体命令如下:

git checkout 节点哈希值
//也可以直接脱离分支指向当前节点
git checkout --detach
复制代码

由于哈希值是一串很长很长的乱码,在实际操作中使用哈希值分离HEAD很麻烦,所以Git也提供了HEAD基于某一特殊位置(分支/HEAD)直接指向前一个或前N个节点的命令,也即相对引用,如下:

//HEAD分离并指向前一个节点
git checkout 分支名/HEAD^
复制代码
//HEAD分离并指向前N个节点
git checkout 分支名~N
复制代码

将HEAD分离出来指向节点有什么用呢?举个例子:如果开发过程发现之前的提交有问题,此时可以将HEAD指向对应的节点,修改完毕后再提交,此时你肯定不希望再生成一个新的节点,而你只需在提交时加上--amend即可,具体命令如下:

git commit --amend
复制代码
回退

回退场景在平时开发中还是比较常见的,比如你巴拉巴拉写了一大堆代码然后提交,后面发现写的有问题,于是你想将代码回到前一个提交,这种场景可以通过reset解决,具体命令如下:

//回退N个提交
git reset HEAD~N
复制代码

reset和相对引用很像,区别是reset会使分支和HEAD一并回退。

3.5 远程相关

当我们接触一个新项目时,第一件事情肯定是要把它的代码拿下来,在Git中可以通过clone从远程仓库复制一份代码到本地,具体命令如下:

git clone 仓库地址
复制代码

前面的章节我也有提到过,clone不仅仅是复制代码,它还会把远程仓库的引用(分支/HEAD)一并取下保存在本地,如图3-5所示:

d401feaf8f60e2c4e587f60c9e6c3856.jpeg

其中origin/master和origin/ft-1为远程仓库的分支,而远程的这些引用状态是不会实时更新到本地的,比如远程仓库origin/master分支增加了一次提交,此时本地是感知不到的,所以本地的origin/master分支依旧指向C4节点。我们可以通过fetch命令来手动更新远程仓库状态

小提示:

并不是存在服务器上的才能称作是远程仓库,你也可以clone本地仓库作为远程,当然实际开发中我们不可能把本地仓库当作公有仓库,说这个只是单纯的帮助你更清晰的理解分布式

fetch

说的通俗一点,fetch命令就是一次下载操作,它会将远程新增加的节点以及引用(分支/HEAD)的状态下载到本地,具体命令如下:

git fetch 远程仓库地址/分支名
复制代码
pull

pull命令可以从远程仓库的某个引用拉取代码,具体命令如下:

git pull 远程分支名
复制代码

其实pull的本质就是fetch+merge,首先更新远程仓库所有状态到本地,随后再进行合并。合并完成后本地分支会指向最新节点

另外pull命令也可以通过rebase进行合并,具体命令如下:

git pull --rebase 远程分支名
复制代码
push

push命令可以将本地提交推送至远程,具体命令如下:

git push 远程分支名
复制代码

如果直接push可能会失败,因为可能存在冲突,所以在push之前往往会先pull一下,如果存在冲突本地解决。push成功后本地的远程分支引用会更新,与本地分支指向同一节点

6综上所述

  • 不管是HEAD还是分支,它们都只是引用而已,引用+节点是 Git 构成分布式的关键

  • merge相比于rebase有更明确的时间历史,而rebase会使提交更加线性应当优先使用

  • 通过移动HEAD可以查看每个提交对应的代码

  • clone或fetch都会将远程仓库的所有提交、引用保存在本地一份

  • pull的本质其实就是fetch+merge,也可以加入--rebase通过rebase方式合并

觉得本文对你有帮助?请分享给更多人

推荐关注「Python编程爱好者」,提升Python技能

点赞和在看就是最大的支持❤️
CNN+LSTM+Attention+DNN模型实战:pytorch搭建CNN+LSTM+Attention+DNN行车速度预测 阅读详情

相关推荐

Silvaco Atlas从头开始(四)——定义材料参数和模型

这部分是关于定义材料参数和模型。

qsz1425AWD2121的博客 4652

Git 各指令的本质,真是通俗易懂啊!

置顶/星标公众号????,硬核文章第一时间送达!链接 |https://juejin.cn/post/68952467026148065420前言作为当前世界上最强大的代码管理工具Git...

青春不老,奋斗不止! 1131

Clarity 3D Layout

Clarity 3D Layout Clarity 3D layout是3D 全波电磁场模型提取工具,它可以导入已经设计好的PCB文件也可以直接在Clarity 3D layout创建版图进行3D 全波电磁场模型提取。

m0_53280471的博客 5485

git cherry-pick的使用教程

对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。 这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就采用合并(git merge)。另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。 一、基本用法 git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支。 $ git cherry-pick <commitHash> 上面命令就会将指定的提交commitHash,应用于当

前进者 13万+

kaggle社区LLM Classification Finetuning

预测用户在一个由大型语言模型(LLMs)驱动的聊天机器人之间的正面交锋中会偏好哪些回应。获得来自聊天机器人竞技场(Chatbot Arena)的对话数据集,其中不同的LLMs对用户的提示生成答案。通过开发一个胜出的机器学习模型,帮助改进聊天机器人与人类的互动方式,并确保它们更好地符合人类的偏好。实际上是进行一个序列的分类。

m0_73542617的博客 1931

在MacBook上直接跑Windows Server 2022:一个开发者的真实踩坑与配置全记录

本文详细记录了在MacBook上原生运行Windows Server 2022的完整流程与优化技巧。通过Boot Camp实现非虚拟机安装,开发者可以充分利用Mac硬件性能,搭建高效的本地开发环境,特别适合需要测试跨平台应用和服务器功能的场景。文章涵盖驱动处理、分区策略、Docker配置等关键步骤,为技术极客提供实用指南。

weixin_42620913的博客 247

Git Cherry Pick详解

Git是一款分布式版本控制系统,它提供了许多强大的功能来管理代码的版本和变更。其中之一就是命令,它允许我们选择某个分支上的一个或多个提交,并将它们应用到当前分支上。这个功能非常有用,可以帮助我们在不合并整个分支的情况下,将特定的提交应用到其他分支上。本篇博客将详细介绍命令的使用方法和示例。本篇博客详细介绍了命令的使用方法和示例。通过命令,我们可以选择性地将特定的提交应用到其他分支上,而不需要合并整个分支。这对于合并单个提交、修复bug和提取特定功能非常有用。

果酱 の 博客 6万+

动态SLAM中的YOLO与ORB-SLAM3融合:实时目标检测与动态点云滤除实战

本文介绍了如何结合YOLOv5目标检测与ORB-SLAM3视觉SLAM系统,实现动态环境下的目标检测与视觉SLAM任务。文章详细阐述了从源码下载、依赖安装(包括libtorch配置)、编译运行步骤(包括ROS环境和非ROS环境下的编译方法),到RGBD-TUM数据集准备与关联处理的全流程。同时针对常见错误提供了解决方案,如libtorch路径配置、ROS环境冲突等。最后展示了系统运行方法,并探讨了未来可能的优化方向,包括增强目标检测能力和改进动态环境下的地图构建。该集成系统为机器人智能导航和环境感知提供了有

LXY_LOVE36的博客 238

Git 的 Cherry-Pick

Git 的 Cherry-Pick

stephenbruce的博客 1万+

04-协议基础03:USB 2.0信号与电气特性

USB 2.0使用两根差分信号线D+/D-进行数据传输,支持低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)三种速率。USB总线为主从模式,所有事务由Host发起。端电阻值作用HostRpd(D+)15KΩ±5%下拉,默认低电平HostRpd(D-)15KΩ±5%下拉,默认低电平全速设备Rpu(D+)1.5KΩ±5%上拉到3.3V,标识全速低速设备Rpu(D-)1.5KΩ±5%上拉到3.3V,标识低速USB 2.0硬件要点。

内核笔记 105

国产FPGA高云GW1NSR-4C,集成ARM Cortex-M3硬核

从板子整体角度来看,这是一款国产化程度很高的板子,从主控FPGA,到JTAG芯片,存储芯片、电源芯片等,都是使用的国产半导体公司的产品。板子整体尺寸也比较迷你,属于小而美类型的,可以认为是一款FPGA核心板,当然也预留了排针接口,给用户足够的扩展空间。对于想了解高云小蜜蜂SoC软硬件开发,以及对云源软件、MCU开发环境做个深度评测来说足够了。JTAG调试器固件可以增加虚拟串口功能,对于板子本来来说面积不会有改动,只需要添加两根信号线即可。

whik1194的博客 6401

git cherry-pick

git cherry-pick可以理解为"挑拣"提交,它会获取某一个分支的单笔/多笔提交,并作为一个新的提交引入到你当前分支上。当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。

weixin_49303682的博客 8383

手把手教你学Simulink--人形机器人控制场景实例:基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真

matlab编辑% 连杆长度 (m)% 躯干(髋到CoM)% 大腿% 小腿% 质量 (kg)% 转动惯量(绕质心,简化为杆)matlab编辑% 躯干CoM(假设在髋上方L_body/2处)% 左大腿CoM% 左小腿CoM% (右腿类似,略)本文完成了基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真,实现了:✅ 定义7-DOF平面人形结构✅ 使用Symbolic Math Toolbox自动推导动力学方程✅ 生成。

MHD0815的博客 147

猿创征文 | Git的良心教程

点击菜单-最近添加如下,说明安装成功Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多Git CMD:Windows风格的命令行Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令。

游坦之的博客 620

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

计算机控制技术及应用

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

2023最新Git的安装史上最全,良心推荐

git 2022 史上最全 良心推荐

企业数字化转型服务提供商 515

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

10大程序员必逛网站,良心推荐,建议收藏!

本部分内容对应视频链接。 很多小伙伴在刚开始学习技术的时候,都会去找一些学习类的网站来提高自己的水平。但现在网络越来越发达,学习类的网站真的是多如牛毛。有的网站真的是非常优秀,可以让你学到不少技术,但同样也有很多网站非常垃圾,不仅浪费你的时间,还可能会误导你。 下面,我就来介绍10个程序员必逛的网站,给大家做一个参考。 1. B站 https://www.bilibili.com/ 第一个网站肯定不必多说,就是我们经常逛的小破站,也就是所谓的B站。这个网站原本的定位是一个二次元动漫类的网站,可是走着走着

码到成功 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

这才叫良心软件!!!

大家好,我是厂长~不知道大家有没有这个困惑。自己在学习一门技术的时候,虽然大家都说看书是最好的方式,但是有些经典书出版很久了,有些知识点已经过时了;又或者学到的东西不知道怎么应用到工作,同时看书遇到问题也没办法向原作者提问,只能带着疑惑看下去或把书放角落吃灰。那么如何提高学习效率呢?我的标准是“只看精的,不看多的”。这也导致我花了不少钱买书买课。总的来说还是很值的,省下了...

tanqingbo的博客 617

从Git的存储布局到Git的使用

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录引言.git目录解析git四大对象Committreeblobtagbranchindex(暂缓区)headerindexgit commitgit gc常用的命令有意思的脚本总结 引言 Git是一个分布式版本控制工具,我想其大名在当今互联网界可以说是无人不知,无人不晓。也许学生时代不是刚需,但是工作以后像腾讯,阿里这样的公司团队协作的

李兆龙的博客 826

这才叫良心网站!!

往期热门文章:1、别总写代码,这130个网站比涨工资都重要! 2、在部队当程序员是什么体验? 3、36.7k!这是我见过最强的后台管理系统 !! 4、各司年终奖大爆料 5、航天院入两万,是一种什么体验!来源|新智元(ID:AI_era)报道聊到开发者必备的网站和工具,那Github应该能名列其中。2008年,三位开发者共同创立了GitHub。如今,历经15年,GitHub开发者终于破亿了!这个滋养...

Java后端技术 382

Git

1.Git介绍 版本控制 无论是代码编写,还是文档编写,我们都会遇到对文档内容反复修改的情况 开发中存在的麻烦 程序员小明负责的模块就要完成了,就在即将提交发布之前的一瞬间,电脑突然蓝屏,硬盘光荣下岗! 几个月来的努力付之东流 老王需要在项目中加入一个很复杂的功能,一边尝试,一边修改代码,就这样摸索了一个星期。 可是这被改得面目全非的代码已经回不到从前了。 小明和老王先后从文件服务器上下载了同一个文件 因项目中Bug过多,导致项目进度拖延,项目经理老徐因此被骂,但不清楚Bug是手下哪一个程序员写的

xglfire的博客 222

版本控制工具-Git

发

m0_58839921的博客 200

三个免费的交互式Git学习网站

转载自:http://www.open-open.com/lib/view/open1420508778375.html Git 是一个强大的版本控制工具,但学起来真的好枯燥、很痛苦;但你又必须得熟悉这个工具,因为它是当今软件开发中不可缺少的一环。 本文就跟大家分享3个免费的交互式 Git 学习网站,这几个交互式学习网站使得学习 Git 变得生动活泼起来,希望能帮助你尽快进入 Gi

nolan_coder的博客 1万+

VS Code 微软良心之作

前几天我安装CS调试后台程序,在安装过程中都设置成默认全部,结果那次安装VS是用时间最长的一次,安装好之后,我电脑桌面多了很多的图标,都是和VS相近,结果我点开看了下,分分钟钟,让我遇到了VSCode,我立即把DW、HB、Sublime、Atom都卸载了! 谁叫我们对上了眼神,我分分钟钟爱上了这款软件,没办法啊! 然后我百度查了下,VScode的信息还真不少,我开始以为是2018才出来不久,但是看...

走在江边的小兵 3212

AcWing Linux基础课第五节git笔记

1、该系列为ACWing中Linux基础课,已购买正版,课程作者为yxc 2、y总培训真的是业界良心,大家有时间可以报一下 3、为啥写在这儿,问就是oneNote的内存不够了QAQ git git用树结构管理所有的历史版本; 每一个节点代表代码的版本,也可以扩展很多分支,或实现不同分支的合并和回滚; 1、git基本概念 工作区:仓库的目录。工作区是独立于各个分支的(不管在哪个分支里面,工作区都是同一个)。(本地看git就是一个文件夹,当前的工作目录) 暂存区:数据暂时存放的区域,类似于工作区写.

qq_44946232的博客 1749

Git 第三篇:VS Code使用Git管理代码

Visual Studio Code(简称VS Code)是一个轻量级且强大的代码编辑器,后台是微软,支持Windows、Mac和Linux操作系统,拥有丰富的插件生态系统,可通过安装插件来支持C++、C#、Python、PHP等语言。VS Code不仅仅是一个代码编辑器,其集成了Git功能,支持基本的Git命令,开发人员可以使用VS Code来编辑和管理源代码。

月亮哥的专栏 1034
上一篇: 炸裂!速度百倍提升,高性能 Python 编译器 Codon 火了!
下一篇: 教你用Python预测机票价格!
菜鸟学Python
博客等级 码龄9年 8083粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值