自从学会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 之于开发者,就像画笔之于艺术家,工具虽小,却承载了无限可能。”

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

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

相关文章

【重庆】《政务数字化应用费用测算规范》(T/CDCIDA 001—2023)-省市费用标准解读系列36

《政务数字化应用费用测算规范&#xff08;报批稿&#xff09;》于2023年11月18日实施&#xff0c;本文件按照GB/T 1.1-2020给出的规则起草&#xff0c;主要适用于重庆政务数字化应用项目的费用测算。我司基于专业第三方信息化项目造价机构角度&#xff0c;从标准创新点、定制软…

Python | 学习type()方法动态创建类

getattr方法的使用场景是在访问不存在的属性时&#xff0c;会触发该方法中的处理逻辑。尤其是在动态属性获取中结合 type()动态创建类有着良好的使用关系。 type()方法常用来判断属性的类别&#xff0c;而动态创建类不常使用&#xff0c;通过如下的几个实例来学习使用&#xff…

机器学习之逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告

逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告 目录 逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告1 逻辑回归算法1.1 概念理解1.2 算法导入1.3 算法优缺点 2 LogisticRegression理解2.1查看参数定义2.2 参数理解2.3 方法2.4基本格式 3 数据标准…

.NET在中国的就业前景:开源与跨平台带来的新机遇

随着技术的不断发展和市场需求的变化&#xff0c;.NET在中国的就业前景正变得愈加广阔。尤其是在开源和跨平台的推动下&#xff0c;越来越多的中国中小型企业选择了.NET技术作为其开发平台&#xff0c;进一步提升了.NET技术人才的市场需求。尽管在中国市场&#xff0c;.NET的市…

Linux(Ubuntu24.04)源码编译安装VTK7.1.1记录

VTK&#xff08;Visualization Toolkit&#xff09;是一个开源的3D可视化开发工具包&#xff0c;用于开发可视化和图形处理应用程序。VTK提供了一系列的算法和工具&#xff0c;用于创建、渲染和处理复杂的3D图形和数据。VTK由C编写&#xff0c;并提供了Python、Java和Tcl等语言…

Hadoop解决数据倾斜方法

数据倾斜是指在分布式数据处理过程中&#xff0c;数据在某些节点上的分布不均匀&#xff0c;导致这些节点的处理负载过重&#xff0c;而其他节点的资源闲置&#xff0c;从而影响整个系统的性能。在 Hadoop 中&#xff0c;以下是一些解决数据倾斜的方法&#xff1a; 1. 数据预处…

【人工智能】人工智能与大模型

人工智能与大模型的结合正在深刻改变多个行业和领域的格局。 1. 人工智能 (AI) 人工智能指的是使计算机或机器具备模拟人类智能的能力&#xff0c;包括学习、推理、问题解决、自然语言处理、视觉感知等。AI的发展可以分为几个阶段&#xff1a; 弱人工智能 (Narrow AI)&#…

安卓11 SysteUI添加按钮以及下拉状态栏的色温调节按钮

最近客户想要做一个台灯产品&#xff0c;需要实现 串口调节台灯功能 &#xff0c;其中包括 亮度调节 色温调节 开关 三个功能 话不多说&#xff0c;贴代码 diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml old mode 100644 new …

node.js下载、安装、设置国内镜像源(永久)(Windows11)

目录 node-v20.18.0-x64 工具下载安装设置国内镜像源&#xff08;永久&#xff09; node-v20.18.0-x64 工具 系统&#xff1a;Windows 11 下载 官网https://nodejs.org/zh-cn/download/package-manager 版本我是跟着老师选的node-v20.18.0-x64如图选择 Windows、x64、v2…

如何轻松安全地销售旧 Android 手机

众所周知&#xff0c;手机不断更新换代。当您想要的手机终于到货时&#xff0c;您可能迫不及待地将旧 Android 手机更新为最新手机。在此之前&#xff0c;你们中的一些人可能会考虑以最多的钱卖掉旧的Android手机。 但永远不要冲动地卖掉你的旧 Android 手机&#xff01;为了安…

欧科云链研究院:ChatGPT 眼中的 Web3

编辑&#xff5c;OKG Research 转眼间&#xff0c;2024年已经进入尾声&#xff0c;Web3 行业经历了热闹非凡的一年。今年注定也是属于AI的重要一年&#xff0c;OKG Research 决定拉上 ChatGPT 这位“最懂归纳的AI拍档”&#xff0c;尝试把一整年的研究内容浓缩成精华。我们一共…

【从零开始入门unity游戏开发之——unity篇04】unity6基础入门——场景窗口(Scene)和层级窗口(Hierarchy)介绍

文章目录 场景窗口&#xff08;Scene&#xff09;和层级窗口&#xff08;Hierarchy&#xff09;一、层级窗口&#xff08;Hierarchy&#xff09;1、添加新的对象&#xff08;物体&#xff09;2、Hierarchy层级窗口快捷键3、搜索 二、Scene场景窗口1、工具栏控制台2、操作物体位…

Jboss EnhancedQueueExecutor 使用案例及源码解读

使用案例 EnhancedQueueExecutor配置类 Configuration Slf4j public class EnhancedQueueExecutorConfig {Beanpublic EnhancedQueueExecutor enhancedQueueExecutor() {return createExecutor(5, 100,"enhancedQueueExecutor","任务处理失败 {}");}priv…

如何确保涡度通量观测数据的准确性?涡度通量光敏感性分析、温度敏感性分析、数据风浪区分析等

确保涡度通量观测数据的准确性&#xff0c;可以采取以下几个步骤&#xff1a; 1.数据预处理&#xff1a;在进行数据分析之前&#xff0c;需要对原始的高频涡度通量数据进行预处理&#xff0c;包括剔除异常值和进行数据缺失插补。异常值剔除可以通过设定合理的阈值来识别并剔除数…

docker镜像构建(基于ISO)

1. 前言 本文详细介绍如何基于kylin v10 ISO文件构建出docker image。系统环境如下&#xff1a; dockder: 20.10.7 linux os: kylinv 10 (GFB) linux kernel: 4.19.90-52.23.v2207.gfb01.ky10.aarch642. 构建yum离线源 2.1. 挂载ISO文件 mount Kylin-Server…

Mac中配置vscode(第一期:python开发)

1、终端中安装 xcode-select --install #mac的终端中安装该开发工具 xcode-select -p #显示当前 Xcode 命令行工具的安装路径注意&#xff1a;xcode-select --install是在 macOS 上安装命令行开发工具(Command Line Tools)的关键命令。安装的主要组件包括&#xff1a;C/C 编…

快速将索尼手机联系人导出为 HTML 文件

我想将 Sony Xperia 手机上的联系人导出到计算机上进行备份&#xff0c;并在需要时进行编辑。这可以做到吗&#xff1f;如何做到&#xff1f;作为助手我需要下载什么工具吗&#xff1f; 当您的 Android 手机上存储了如此多的重要联系人&#xff0c;而您又不想丢失它们时&#…

学习threejs,导入AWD格式的模型

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.AWDLoader AWD模型加…

【OAA 】面向对象分析:从概念到实践

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【Java】登神长阶 史诗般的Java成神之路 我们都知道Java是一门面向对象的开发语言&#xff0c;在软件开发的广袤天地中&#xff0c;面向对象分析&#xff08;Object-Oriented Analysis&#xff0c;简称…

【Axios使用手册】如何使用axios向后端发送请求并进行数据交互

axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;用于浏览器和 Node.js。它支持请求和响应拦截、取消请求、自动转换 JSON 数据等功能&#xff0c;非常适合在现代 JavaScript 应用中进行网络请求。以下是对 axios 的详细讲解&#xff0c;包括安装、基本用法、高级功能等。…