用 Git 玩转版本控制

前言

Git,作为当今最流行的版本控制系统,不仅深受程序员们的青睐,也逐渐成为非开发人员管理文档版本的强大工具。本文将从实用主义的角度出发,深入浅出地介绍 Git 的常用命令,并带领大家探索 Git 的高级功能,让你在项目开发中游刃有余。

Git 简介

版本控制的重要性
版本控制是一种记录文件变更历史的方法,它允许开发者:

  • 查看历史记录
  • 恢复到旧版本
  • 管理多人协作开发
  • 跟踪记录整个软件的开发过程

版本控制工具的发展

  • 本地版本控制:如 RCS,适合个人使用。
  • 集中版本控制:如 SVN、CVS,所有数据保存在中央服务器。
  • 分布式版本控制:如 Git,每个开发者都有完整的版本库。

Git 的诞生
Git 由 Linux 内核的开发者 Linus Torvalds 创建,目的是解决 Linux 内核项目中版本控制的需求。Git 是免费、开源的,专为性能、速度和效率而设计。

实用主义:Git 常用命令

准备阶段

  1. 安装 Git:访问 Git 官网,下载并安装适合你操作系统的版本。
  2. 配置 Git:设置你的用户名和邮箱,这将在每次提交时记录你的信息。
    git config user.name "Your Name"
    git config user.email "your.email@example.com"
    

常用操作

  • 克隆仓库
    git clone https://github.com/username/repository.git
    
  • 查看状态
    git status
    
  • 创建/切换分支
    git branch new-branch
    git checkout new-branch
    
  • 添加/提交更改
    git add .
    git commit -m "Commit message"
    
  • 推送到远程仓库
    git push origin new-branch
    
  • 拉取最新代码
    git pull origin new-branch
    
  • 查看提交日志
    git log
    
  • 打标签
    git tag v1.0
    git push origin v1.0
    

Git 高级功能

基本概念

  • 工作区:你的项目文件夹。
  • 暂存区:准备提交的文件列表。
  • 本地版本库.git 目录,存储所有分支和标签。
  • 远程版本库:如 GitHub 上的仓库。

分支管理

  • 查看分支
    git branch -a
    
  • 删除分支
    git branch -d branch-name
    
  • 合并分支
    git merge feature-branch
    

历史操作

  • 高级日志查看
    git log --oneline --graph
    
  • 撤销操作
    git revert HEAD
    

远程仓库管理

  • 添加远程仓库
    git remote add origin https://github.com/username/repository.git
    
  • 查看远程连接
    git remote -v
    

问题排查

  • 代码责任查询
    git blame filename
    
  • 二分查找问题
    git bisect start
    git bisect bad
    git bisect good [good_commit]
    git bisect reset
    

子模块

  • 添加子模块
    git submodule add https://github.com/username/submodule.git
    

其他高级命令

  • 垃圾回收
    git gc
    
  • 打包版本
    git archive --format=zip -o release.zip tagname
    

总结

Git 的强大功能远不止于此,本文仅涵盖了冰山一角。掌握这些基础和高级命令,将大大提高你的开发效率和版本控制能力。遇到问题时,不要忘了利用搜索引擎,同时做好笔记,以便日后查阅。

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

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

相关文章

QT中QSettings的使用系列之二:保存和恢复应用程序主窗口

1、核心代码 #include "widget.h" #include "ui_widget.h" #include <QSettings> #include <QDebug> #include <QColo

【LLM之KG】KoPA论文阅读笔记

研究背景 知识图谱补全&#xff08;KGC&#xff09;是通过预测知识图谱中缺失的三元组来完善知识图谱的信息。传统方法主要基于嵌入和预训练语言模型&#xff0c;但这些方法往往忽视了知识图谱的结构信息&#xff0c;导致预测效果不佳。 研究目标 本文的研究目标是探索如何将…

【Linux】基础IO_3

文章目录 六、基础I/O3. 软硬链接4. 动静态库 未完待续 六、基础I/O 3. 软硬链接 使用 ln 就可以创建链接&#xff0c;使用 ln -s 可以创建软链接&#xff0c;直接使用 ln 则是硬链接。 我们对硬链接进行测试一下&#xff1a; 根据测试&#xff0c;我们知道了 硬链接就像一…

食品行业BC一体化运营方案

一、引言 在当前的市场环境下&#xff0c;食品行业面临着日益激烈的竞争和不断变化的消费者需求。传统的经营模式已无法满足现代消费者对高效、便捷和个性化服务的要求。因此&#xff0c;实施BC&#xff08;Business to Consumer&#xff09;一体化运营方案成为必然选择。通过…

筛质数(暴力法、埃氏筛、欧拉筛)

筛质数(暴力法、埃氏筛、欧拉筛) 暴力法 思路分析: 直接双for循环来求解质数 如果不设置标记只是简单地执行了break会导致内部循环(由j控制)而不是立即打印i或者跳过它。如果打印语句写到内部循环中,也会导致每个 非素数也被打印出来多次(在找到其因子之前)。 code:…

某程序员:30岁了,老婆管钱,背着我买了50万股票,亏了20w,强制她清仓后又买了36万

“辛辛苦苦攒了几年钱&#xff0c;本想买房买车&#xff0c;结果全被老婆炒股亏掉了&#xff01;” 近日&#xff0c;一位30岁的程序员大哥在网上吐苦水&#xff0c;引发了网友们的热议。 这位程序员大哥和妻子结婚后&#xff0c;一直秉持着“男主外&#xff0c;女主内”的传统…

面向普通人的prompt操作手册

主要是采用通俗易懂的话语介绍prompt的使用&#xff1a;主要参考文心一言的百度文档。 大型语言模型使用强化学习中的人类反馈来学习&#xff0c;这个过程中与人类对话的提问通常是通俗易懂的&#xff0c;也就是说&#xff0c;大型语言模型可以理解并回答一般人能听懂的问题。…

c语言 课设 atm

功能需求分析 ATM功能主界面:显示所能进行的操作,用户可多次选择。 ATM注册界面:输入用户名,用户密码,确认密码,密码长度不是六位重新输入,两次密码不一致重新输入,输入账号。密码隐藏,实现退格换行对*无影响。多人注册 ATM登录界面:输入账号,密码,三次以内输入…

git常用操作汇总大全

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;入职小红书广告投放开发&#xff0c;很高兴认识大家&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博…

颍川文明的传承

园子说颍川 中国第一个王朝--夏朝&#xff0c;由大禹建立于夏邑(今禹州市)&#xff0c;其子启继承王位开启了“父传子,家天下”先河。禹州现有禹王庙、禹王锁井遗址&#xff0c;有夏启宴请诸侯的“钧台”遗址。夏商周时代&#xff0c;诸侯分封兴起&#xff0c;颍川地区活跃着众…

ThinkPHP6图书借阅管理系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP6图书借阅管理系统 一 介绍 此图书借阅管理系统基于ThinkPHP6框架开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 ThinkPHP6mysqlbootstrapphpstudyvscode 二 功能 用户 1 登录/注销…

多路h265监控录放开发-(8)完成摄像机管理的修改和删除功能

xviewer.h public:XViewer(QWidget* parent Q_NULLPTR);//编辑摄像机void SetCam(int index);//121 public slots:void AddCam(); //新增摄像机配置120void SetCam(); //121void DelCam(); //121 private:Ui::XViewerClass ui;QMenu left_menu_; xviewer.cpp void XView…

LeetCode 算法:排序链表 c++

原题链接&#x1f517;&#xff1a;排序链表 难度&#xff1a;中等⭐️⭐️ 题目 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4] 示例 2&#xff1a; 输…

vagrant + virtual box + rhel7 + ssh 登录

1、程序下载 vc https://download.visualstudio.microsoft.com/download/pr/1754ea58-11a6-44ab-a262-696e194ce543/3642E3F95D50CC193E4B5A0B0FFBF7FE2C08801517758B4C8AEB7105A091208A/VC_redist.x64.exe virtualbox https://download.virtualbox.org/virtualbox/7.0.18/V…

牛客练习题打卡--redis

A list保证数据线性有序且元素可重复&#xff0c;它支持lpush、blpush、rpop、brpop等操作&#xff0c;可以当作简单的消息队列使用&#xff0c;一个list最多可以存储2^32-1个元素; redis中set是无序且不重复的; zset可以按照分数进行排序 &#xff0c;是有序不重复的; Redi…

Arduino入门4——基于millis函数、定时器中断的多任务框架

Arduino入门4——基于millis函数、定时器中断的多任务框架 millis函数定时器中断总结&#xff08;笔者的碎碎念。。。。。。。。&#xff09; 上一期我们基于oled学习了库的调用&#xff0c;这一期我们基于millis函数和定时器中断&#xff0c;学习以下多任务框架。但是我们本期…

使用winehq在Mac上成功运行Win系统exe应用程序

使用Wine可以在Mac上运行一部分exe程序&#xff0c;但是注意⚠️可能会运行失败&#xff01; 第一部分失败尝试&#xff08;可跳过 通过下面连接下载软件 https://dl.winehq.org/wine-builds/macosx/download.html 安装好后显示上面链接软件过期&#xff0c;并且要求下载XQ…

CentOS9镜像下载地址加速下载

CentOS 9 是 CentOS 项目的最新版本之一&#xff0c;它基于 RHEL&#xff08;Red Hat Enterprise Linux&#xff09;9 的源代码构建。CentOS&#xff08;Community ENTerprise Operating System&#xff09;是一个免费的企业级 Linux 发行版&#xff0c;旨在提供一个与 RHEL 兼…

大模型项目落地时,该如何估算模型所需GPU算力资源

近期公司有大模型项目落地。在前期沟通时,对于算力估算和采购方案许多小伙伴不太了解,在此对相关的算力估算和选择进行一些总结。 不喜欢过程的可以直接 跳到HF上提供的模型计算器 要估算大模型的所需的显卡算力,首先要了解大模型的参数基础知识。 大模型的规模、参数的理解…

路由器基础配置以及静态路由配置

1、搭建网络 搭建网络拓扑、分配IP地址、划分网段、连接端口 2、配置路由器 路由器基础配置 //进入全局配置模式 Router#enable Router#conf t Enter configuration commands, one per line. End with CNTL/Z.//配置高速同步串口serial2/0 Router(config)#int ser2/0 Route…