自从学会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.rhkb.cn/news/500738.html

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

相关文章

Mono里运行C#脚本21—mono_image_init_name_cache

前面分析了怎么样加载mscorlib.dll文件,然后把文件数据读取到内存。 接着下来,就会遇到加载整个C#的类型系统,比如System. Object,大体类型如下图所示: 在对CIL编译之前,需要把这些类型全部加载到内存里,以便快捷地访问它们。 mono_image_init_name_cache函数就是完成…

【Triton-ONNX】如何使用 ONNX 模型服务与 Triton 通信执行推理任务上-Triton快速开始

模型部署系列文章 前置-docker 理解:【 0 基础 Docker 极速入门】镜像、容器、常用命令总结前置-http/gRPC 的理解: 【HTTP和gRPC的区别】协议类型/传输效率 /性能等对比【保姆级教程附代码】Pytorch (.pth) 到 TensorRT (.plan) 模型转化全流程【保姆级教程附代码(二)】Pytor…

win32汇编环境,对话框中显示bmp图像文件

;运行效果 ;win32汇编环境&#xff0c;对话框中显示bmp图像文件 ;显示的是一张尺寸267*400的bmp位图,及一张缩小为原来三分之一的位图 ;将代码复制进radasm软件里&#xff0c;直接编译就可以运行了 ;下面为asm文件 ;>>>>>>>>>>>>>>&…

GAN对抗生成网络(二)——算法及Python实现

1 算法步骤 上一篇提到的GAN的最优化问题是&#xff0c;本文记录如何求解这一问题。 首先为了表示方便&#xff0c;记&#xff0c;这里让最大的可视作常量。 第一步&#xff0c;给定初始的&#xff0c;使用梯度上升找到 ,最大化。关于梯度下降&#xff0c;可以参考笔者另一篇…

多线程访问FFmpegFrameGrabber.start方法阻塞问题

一、背景 项目集成网络摄像头实现直播功能需要用到ffmpeg处理rtmp视频流进行web端播放 通过网上资源找到大神的springboot项目实现了rtmp视频流转为http请求进行视频中转功能&#xff0c;其底层利用javacv的FFmpegFrameGrabber进行拉流、推流&#xff0c;进而实现了视频中转。 …

X86、X64、64位、32位归纳总结

梳理一下位数区别和命名规范。 操作系统的位数决定了内存寻址空间的大小 X86_32的简称是X86。32位&#xff0c;最多只能识别4GB的内存。 X86_64的简称是X64。64位&#xff0c;最多能识别数十TB内存。 由于历史发展原因&#xff0c;形成了这样的简称&#xff0c;简称很关键。…

redis的学习(二)

4 哈希表 哈希类型中的映射关系通常称为field-value&#xff0c;⽤于区分Redis整体的键值对&#xff08;key-value&#xff09;&#xff0c; 注意这⾥的value是指field对应的值&#xff0c;不是键&#xff08;key&#xff09;对应的值&#xff0c; 4.1 操作命令 hset&#xff…

前端编码技巧与规范

当我们完成项目的构建&#xff0c;进入开发阶段的时候&#xff0c;除了你需要了解框架本身的知识点外&#xff0c;我们还需要提前掌握一些项目的编码技巧与规范&#xff0c;在根源上解决之后因编码缺陷而导致的项目维护困难、性能下降等常见问题&#xff0c;为项目多人开发提供…

谷歌广告关键词出价根据什么来判断?

投放广告的目的是为了盈利&#xff0c;而关键字的出价直接关系到广告费用的支出。因此&#xff0c;设定出价上限时&#xff0c;不仅要参考关键字规划师的建议&#xff0c;还需结合广告的盈利表现来合理判断。 可以在谷歌广告账户的后台查看“平均每次点击费用”和“每次点击的…

《我在技术交流群算命》(二):QGraphicsItem怎么写自定义信号啊(QObject多继承顺序问题)

某位群友突然无征兆的抛出以下问题&#xff1a; QGraphicsItem怎么写自定义信号啊 看到这个问题的时候我是比较疑惑的&#xff0c;按鄙人对 Qt 的了解&#xff0c;自定义信号只需: 继承QObject类中加入Q_OBJECT宏声明一个信号并使用 但该群友毕竟也不是一个Qt新手&#xff0…

filebeat采集应用程序日志和多行匹配

1 filebeat采集nginx json日志 01 修改nginx的日志为json格式 elk93节点安装nginx&#xff0c;注释掉默认的nginx日志格式&#xff1a;# access_log /var/log/nginx/access.log;&#xff0c;在下方增加以下配置。然后重启nginx log_format wzy_nginx_json {"timestamp&…

大语言模型提示技巧(二)-给模型时间思考

在与大语言模型交互的时候&#xff0c;如果模型给出了错误的结论&#xff0c;不要着急否定大模型的能力&#xff0c;我们应当尝试重新构建查询&#xff0c;请求模型在提供它的最终答案之前进行一系列相关的推理。也就是说&#xff0c;如果给模型一个在短时间或用少量文字无法完…

深入剖析MySQL数据库架构:核心组件、存储引擎与优化策略(一)

sql语句分为两大类&#xff1a;查询&#xff08;select&#xff09;、增删改----修改&#xff08;update&#xff09; select语句的执行流程 执行sql语句的流程&#xff1a;连接数据库、缓存查询、解析器、优化器、执行器、存储引擎操作数据 客户端&#xff1a;图形界面工具…

【AimRT】现代机器人通信中间件 AimRT

目录 一、什么是AimRT二、AimRT与ROS22.1 定位与设计2.2 组成与通信方式对比 三、AimRT基本概念3.1 Node、Pkg 和 Module3.2 Protocol、Channel、Rpc 和 Filter3.3 App模式 和 Pkg模式3.4 Executor3.5 Plugin 一、什么是AimRT AimRT 是智元机器人公司自主研发的一款机器人通信…

SSM-Spring-AOP

目录 1 AOP实现步骤&#xff08;以前打印当前系统的时间为例&#xff09; 2 AOP工作流程 3 AOP核心概念 4 AOP配置管理 4-1 AOP切入点表达式 4-1-1 语法格式 4-1-2 通配符 4-2 AOP通知类型 五种通知类型 AOP通知获取数据 获取参数 获取返回值 获取异常 总结 5 …

idea( 2022.3.2)打包报错总结

一 报错 class lombok.javac.apt.LombokProcessor (in unnamed module 0x4fe64d23) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing …

攻防靶场(29):目录权限和文件权限 ICMP

目录 1. 侦查 1.1 收集目标网络信息&#xff1a;IP地址 1.2 主动扫描&#xff1a;扫描IP地址段 1.3 搜索目标网站 2. 初始访问 2.1 利用面向公众的应用 3. 权限提升 3.1 有效账户&#xff1a;本地账户 3.2 滥用特权控制机制&#xff1a;Sudo和Sudo缓存 靶场下载地址&#xff1a…

C++ 面向对象编程:多态、虚函数原理

多态的通用描述便是&#xff0c;使用父类指针调用函数&#xff0c;可以根据对象类型来调用对应类型函数&#xff0c;我们分几个步骤来理解&#xff0c;先看下类的占用空间&#xff0c;然后拓展到虚函数对应数组&#xff0c;最后理解多态的原理。 我们先来看下在多态中没有任何…

王老吉药业SRM系统上线 携手隆道共启战略合作新篇章

12月27日&#xff0c;广州王老吉药业股份有限公司&#xff08;简称“王老吉药业”&#xff09;SRM项目上线启动会&#xff0c;在王老吉科普教育基地——“吉园”隆重举行。广药集团纪委主任陈耕、王老吉药业总工程师黄晓丹、隆道公司总裁吴树贵、项目经理赵耀、供应商代表郭伟及…

JavaScript基础 -- 变量、作用域与内存

1 原始值与引用值 原始值就是最简单的数据&#xff0c;引用值则是由多个值构成的对象。在把一个值赋给变量时&#xff0c;JavaScript引擎必须要确定这个值是原始值还是引用值 原始值大小固定&#xff0c;保存在栈内存上&#xff1b;引用值是对象&#xff0c;存储在堆内存上 它…