当前位置: 首页 > news >正文

自从学会Git,感觉打开了一扇新大门

“同事让我用 Git 提交代码,我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时,才会发现它就像一本魔法书,轻松解决代码管理的种种难题。

为什么 Git 能成为程序员的标配工具?它究竟打开了怎样一扇“大门”?

从自由职业者到大厂团队,Git 已成为代码管理的行业标准。无论是初创团队,还是拥有数百开发者的企业,Git 都在无形中提升了开发效率,成为推动科技发展的幕后英雄。

Git 的核心魅力
  1. 版本控制,让历史可追溯

    • 还记得重构后无法回滚的日子吗?Git 的分支功能,帮你保留每一个阶段的代码历史。
  2. 多人协作,团队效率倍增

    • 再也不用担心文件命名如“final_v2.1_last_final.docx”这样的混乱场景,Git 的 pull 和 merge 让团队协作如丝般顺滑。
  3. 分支管理,开发测试两不误

    • 新功能开发、BUG 修复可以独立在分支中进行,确保主分支稳定。

Git 是目前最流行的分布式版本控制系统,被广泛应用于软件开发项目中 它提供了许多命令和功能,可以帮助开发者有效地管理代码。本文将介绍Git的常见命令及其用法,帮助你快速上手并提升代码管理的效率 

1. 初始化与配置 

  • git init:

    初始化一个新的Git仓库。 

  • git config:

    配置Git的全局或局部设置,如用户名、邮箱等。 

2. 代码管理 

  • git add:

    将修改的文件添加到暂存区。 

  • git commit:

    将暂存区的文件提交到本地仓库。 

  • git status:

    查看当前代码状态,包括已修改、已暂存等。 

  • git diff:

    查看文件在工作区与暂存区或本地仓库的差异。 

3. 分支操作 

  • git branch:

    查看、创建或删除分支。 

  • git checkout:

    切换分支或恢复文件到上一个版本。 

  • git merge:

    合并分支。 

  • git rebase:

    将一个分支的提交应用到另一个分支上。 

4. 远程仓库 

  • git remote:

    管理远程仓库的操作,如添加、删除、重命名远程仓库。 

  • git clone:

    克隆远程仓库到本地。 

  • git pull:

    拉取远程仓库的最新代码。 

  • git push:

    推送本地代码到远程仓库。 

5. 撤销与回退 

  • git revert:

    撤销某个提交并生成一个新的提交。 

  • git reset:

    回退到指定的提交或重置暂存区与工作区。 

  • git stash:

    暂存当前的修改,以便切换分支或恢复。 

6. 历史记录 

  • git log:

    查看提交历史记录。 

  • git blame:

    显示文件每一行的修改信息。 

  • git show:

    查看某个提交的详细信息。 

7. 标签管理 

  • git tag:

    管理标签,如创建、查看、删除标签。 

  • git push --tags:

    推送本地标签到远程仓库。 

8. 忽略文件与配置文件

  • .gitignore:

    配置忽略某些文件或目录。

  • .gitattributes:

    配置文件属性,如文件换行符、二进制文件等。

9. 远程仓库管理 

  • git remote add <remote-name> <remote-url>:

    添加一个新的远程仓库。 

  • git remote -v:

    查看当前配置的所有远程仓库。 

  • git fetch <remote-name>:

    从远程仓库获取最新的代码,但不合并到当前分支。 

  • git remote show <remote-name>:

    查看远程仓库的详细信息。 

10. 撤销与修改 

  • git checkout – <file-name>:

    丢弃工作区的修改,恢复到最近一次提交的状态。 

  • git reset HEAD <file-name>:

    取消暂存文件,将文件从暂存区移回到工作区。 

  • git commit --amend:

    修改最后一次提交的消息或内容。 

11. 版本比较和提交历史 

  • git diff <commit1> <commit2>:

    比较两个提交之间的差异。 

  • git log --oneline:

    以简洁的方式显示提交历史记录。 

  • git show <commit>:

    查看指定提交的详细信息,包括修改的文件和内容变动。 

12. 合并与解决冲突 

  • git merge <branch-name>:

    将指定分支的修改合并到当前分支。 

  • git mergetool:

    使用可视化工具解决合并冲突。 

  • git diff --check:

    查找潜在的合并冲突。 

13. 分支管理 

  • git branch -d <branch-name>:

    删除指定的本地分支。 

  • git branch -m <old-branch-name> <new-branch-name>:

    重命名本地分支。 

  • git branch -a:

    查看所有本地和远程分支。

14. 撤销提交 

  • git revert <commit>:

    创建一个新的提交,撤销指定的提交内容。 

  • git reset <commit>:

    将分支指针移动到指定的提交,丢弃该提交之后的提交历史。 

15. 子模块管理 

  • git submodule add <repository-url> :

    将一个仓库作为子模块添加到当前仓库中。 

  • git submodule update --init --recursive:

    初始化并更新子模块。 

  • git submodule foreach <command>:

    为每个子模块执行指定的命令。 

16. 远程操作 

  • git push <remote-name> <branch-name>:

    将本地分支的提交推送到远程仓库。

  • git pull <remote-name> <branch-name>:

    从远程仓库获取更新并合并到当前分支。 

  • git clone <repository-url> :

    克隆远程仓库到本地。

17. 其他常用命令 

  • git stash:

    将当前的未提交修改保存到堆栈中,方便切换分支或者储存临时修改。

  • git cherry-pick <commit>:

    选择一个或多个提交,将其应用到当前分支中。 

  • git clean -n:

    列出将要被删除的未被跟踪的文件和目录。

  • git blame <file-name>:

    逐行显示指定文件的修改历史和作者信息。

这只是一部分Git命令的示例,Git拥有丰富的功能和命令,可根据需要进行深入学习和使用。

掌握 Git,不只是学会了一门工具,而是拥有了驾驭代码的能力。它让你从手忙脚乱到有条不紊,打开了现代开发的大门。

“Git 之于开发者,就像画笔之于艺术家,工具虽小,却承载了无限可能。”

相关文章:

自从学会Git,感觉打开了一扇新大门

“同事让我用 Git 提交代码&#xff0c;我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时&#xff0c;才会发现它就像一本魔法书&#xff0c;轻松解决代码管理的种种难题。 为什么 Git 能成为程序员的标配工具&#xff1f;它究…...

Ansys Discovery 中的网格划分方法:探索模式

本篇博客文章将介绍 Ansys Discovery 中可用于在探索模式下进行分析的网格划分方法。我们将在下一篇博客中介绍 Refine 模式下的网格划分技术。 了解 Discovery Explore 模式下的网格划分 网格划分是将几何模型划分为小单元以模拟系统在不同条件下的行为的过程。这是通过创建…...

关于 AWTK 和 Weston 在旋转屏幕时的资源消耗问题

关于 AWTK 和 Weston 在旋转屏幕时的资源消耗问题&#xff0c;首先需要理解这两者旋转的本质区别及其资源开销。 AWTK的屏幕旋转&#xff1a; AWTK旋转的实现方式&#xff1a; AWTK 是一个用户界面工具包&#xff0c;它通过图形渲染系统处理所有控件和窗口的旋转。当你使用 w…...

grouped.get_group((‘B‘, ‘A‘))选择分组

1. df.groupby([team, df.name.str[0]]) df.groupby([team, df.name.str[0]]) 这一部分代码表示对 DataFrame df 按照 两个条件 进行分组&#xff1a; 按照 team 列&#xff08;即团队&#xff09;。按照 name 列的 首字母&#xff08;df.name.str[0]&#xff09;。 df.name.s…...

HTML——66.单选框

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>单选框</title></head><body><!--input元素的type属性&#xff1a;(必须要有)--> <!--单选框:&#xff08;如所住省会&#xff0c;性别选择&…...

Couchbase 和数据湖技术的区别、联系和相关性分析

Couchbase 和数据湖技术&#xff08;如 Delta Lake、Apache Hudi、Apache Iceberg&#xff09;分别是两类不同的数据存储与管理系统&#xff0c;但它们也可以在特定场景中结合使用&#xff0c;以下是它们的区别、联系和相关性分析&#xff1a; 区别&#xff1a; 1. 核心用途&a…...

springboot3 性能优化

Spring Boot 3 是基于 Spring Framework 6 的最新版本,支持 Java 17,并引入了多项改进,包括原生镜像支持、性能提升和现代化开发支持。以下是对 Spring Boot 3 应用进行全面优化的详细步骤: 一、开发环境优化 1. 使用最新版本 确保依赖版本为最新: Spring Boot 3.x。 J…...

C++之运算符重载详解篇

1.概念 重载概念&#xff1a; C 允许在同一作用域中的某个函数和运算符指定多个定义&#xff0c;分别称为函数重载和运算符重载。 运算符重载概念&#xff1a;对已有的运算符重新进行定义&#xff0c;赋予其另一种功能&#xff0c;以适应不同的数据类型 这里主要介绍…...

深度学习应用工程化中的节能减排最佳实践

文章大纲 简介为什么要在制造业节能减排能耗估算显卡能耗CPU 能耗树莓派能耗加速卡能耗硬件层面的改进边缘端硬件简介树莓派 + 加速卡软件层面的改进检测逻辑的改进算法层面改进深度学习模型训练,推理,量化的优化外网参考参考文献简介 为什么要在制造业节能减排 一、制造业…...

电脑文件msvcp110.d丢失的解决方法

电脑运行故障全解析&#xff1a;从文件丢失到系统报错&#xff0c;打造无忧使用环境 在数字化浪潮中&#xff0c;电脑作为我们工作、学习和娱乐的得力助手&#xff0c;其稳定运行至关重要。然而&#xff0c;在实际使用过程中&#xff0c;我们难免会遇到各种各样的问题&#xf…...

xdoj isbn号码

ISBN 号码 问题描述 每一本正式出版的图书都有一个 ISBN 号码与之对应&#xff0c;ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符&#xff0c;其规定格式如"x-xxx-xxxxx-x"&#xff0c; 其中符号“-”是分隔符&#xff08;键盘上的减号&#xff09;&#xff0c;最…...

qt的utc时间转本地时间

代码如下: #include <QCoreApplication> #include <QDateTime> #include <QDebug>int main(int argc...

mariadb变更数据存放目录

1、停止mariadb服务 # systemctl stop maraidb.server 2、创建数据目录 # mkdir /opt/mysql # chown -R mysql:mysql /opt/mysql 3、配置mariadb 3.1 配置文件说明 # cd /etc/mysql/ && ls -l my.cnf为主配置文件&#xff0c;其他的为子配置&#xff0c;同时配置…...

分布式专题(11)之Zookeeper特性与节点数据类型详解

一、Zookeeper数据结构 Zookeeper数据模型与结构与Unix文件系统很类似&#xff0c;整体上可以看做是一棵树&#xff0c;每个节点称做一个ZNode。 Zookeeper的数据模型是层次模型&#xff0c;层次模型常见于文件系统 。层次模型和Key-Value模型是两种主流的数据模型&#xff0c;…...

Java项目实战II基于小程序的驾校管理系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着汽车保有量的不断增长&#xff0c;驾驶培训市场日…...

Unity Pico 应用失去焦点后,追踪功能被禁用(原生 UI 界面弹出)

在 Unity 中&#xff0c;如果正在使用新的输入系统&#xff0c;任何触发 OnApplicationFocus(false) 的事件都可能会禁用追踪功能。 负责此功能的组件是附加到主摄像机的 "Tracked Pose Driver (Input System)" 组件。由于非输入系统版本不是新输入系统的一部分&…...

第十四届蓝桥杯Scratch省赛中级组—智能计价器

智能计价器 背景信息&#xff1a; A城市的出租车计价&#xff1a;3公里以内13元&#xff0c;基本单价每公里2.3元(超过3公里的部分&#xff0c;不满1公里按照1公里收费&#xff09;&#xff0c;燃油附加费每运次1元。 例如&#xff1a; 3.2公里的打车费用&#xff1a;132.3…...

AWS S3文件存储工具类

pom依赖 <!--aws-s3--> <dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-s3</artifactId><version>1.12.95</version></dependency>S3Utils import cn.hutool.core.util.ZipUtil; import com.a…...

【leetcode100】二叉树的中序遍历

1、题目描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 2、初始思路 2.1 思路 中序遍历的顺序是左→根→右&#xff0c;定义一个函数进行遍历 # Definition for …...

开源GTKSystem.Windows.Forms框架:C# Winform跨平台运行深度解析

开源GTKSystem.Windows.Forms框架&#xff1a;C# Winform跨平台运行深度解析 一、跨平台框架的崛起 1.1 跨平台技术的现状与需求 在当今快速发展的科技时代&#xff0c;软件开发的需求日益多样化。随着移动设备和操作系统的不断涌现&#xff0c;开发者面临着前所未有的挑战&…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

Java数组Arrays操作全攻略

Arrays类的概述 Java中的Arrays类位于java.util包中&#xff0c;提供了一系列静态方法用于操作数组&#xff08;如排序、搜索、填充、比较等&#xff09;。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序&#xff08;sort&#xff09; 对数组进行升序…...