Git 常用命令指南

本文档旨在提供 Git 的常用命令及其使用示例,涵盖全局参数配置、获取本地仓库、基本概念、本地仓库操作、远程仓库操作和分支操作等内容。


1. 全局参数配置

Git 允许用户配置全局参数,以便在所有的仓库中共享这些设置。

<BASH>

# 设置用户名
git config --global user.name "Your Name"# 设置邮箱
git config --global user.email "your.email@example.com"# 查看所有配置
git config --list# 查看特定配置
git config user.name# 设置默认编辑器为 VSCode
git config --global core.editor "code --wait"# 设置默认的合并工具
git config --global merge.tool vscode# 启用颜色输出
git config --global color.ui auto

2. 获取本地仓库

初始化仓库

<BASH>

# 在当前目录初始化一个新的 Git 仓库
git init

克隆仓库

<BASH>

# 克隆远程仓库到本地
git clone <repository_url># 克隆指定分支
git clone -b <branch_name> <repository_url>

3. 基本概念

Git 是一个分布式版本控制系统,用于跟踪文件的变化并协作开发。为了更好地理解 Git 的工作机制,以下是 Git 中的一些核心概念:

3.1 工作区(Working Directory).git所在目录就是工作区

  • 工作区是用户当前正在编辑的目录,包含项目的所有文件和文件夹。
  • 工作区中的文件可以是未跟踪的文件(未被 Git 管理)或已跟踪的文件(已纳入 Git 管理)。
  • 在工作区中修改文件后,需要通过 git add 将更改添加到暂存区。

3.2 暂存区(Staging Area / Index)

  • 暂存区是一个临时区域,用于保存用户打算提交的更改。
  • 通过 git add 命令将工作区中的修改添加到暂存区。
  • 暂存区允许用户选择性地提交某些更改,而不是一次性提交所有修改。
  • 可以通过 git status 查看暂存区和工作区的状态。

3.3 本地仓库(Local Repository)

  • 本地仓库是 Git 存储项目历史记录的地方,通常位于项目根目录下的 .git 文件夹中。
  • 每次通过 git commit 提交更改时,Git 会将暂存区的内容保存到本地仓库,并生成一个唯一的提交记录(Commit)。
  • 本地仓库包含了项目的完整历史记录、分支信息、标签等。

3.4 提交(Commit)

  • 提交是 Git 中的一个基本单位,代表一次对项目的更改。
  • 每次提交都会生成一个唯一的 SHA-1 哈希值,用于标识该提交。
  • 提交包含以下信息:
    • 作者和提交者的信息。
    • 提交的时间戳。
    • 提交的更改内容(通过 diff 查看)。
    • 提交的注释信息(通过 git commit -m 添加)。

3.5 远程仓库(Remote Repository)

  • 远程仓库是托管在服务器上的 Git 仓库,用于团队协作和代码共享。
  • 通过 git clone 命令将远程仓库克隆到本地,或者通过 git remote add 添加新的远程仓库。
  • 通过 git push 将本地仓库的更改推送到远程仓库,通过 git pull 或 git fetch 获取远程仓库的更改。
  • 常见的远程仓库托管平台包括 GitHub、GitLab 和 Bitbucket。

3.6 分支(Branch)

  • 分支是 Git 中用于并行开发的核心功能。
  • 默认情况下,Git 会创建一个 master 或 main 分支。
  • 每个分支代表一个独立的开发线,可以在分支上进行修改而不影响其他分支。
  • 通过 git branch 创建新分支,通过 git checkout 切换分支,通过 git merge 合并分支。
  • 分支的轻量级特性使得 Git 在并行开发中非常高效。

3.7 标签(Tag)

  • 标签是 Git 中用于标记特定提交的功能,通常用于发布版本(如 v1.0.0)。
  • 标签分为轻量标签(Lightweight Tag)和附注标签(Annotated Tag)。
    • 轻量标签:只是一个指向特定提交的指针。
    • 附注标签:包含额外的信息,如标签名、作者、日期和注释。
  • 通过 git tag 创建标签,通过 git push --tags 将标签推送到远程仓库。

3.8 HEAD

  • HEAD 是一个指针,指向当前工作区所在的分支或提交。
  • 通常情况下,HEAD 指向当前分支的最新提交。
  • 通过 git checkout <commit> 可以分离 HEAD,使其直接指向某个提交而不是分支。

4. 本地仓库操作

查看状态

<BASH>

# 查看当前仓库状态
git status

添加文件到暂存区

<BASH>

# 添加单个文件
git add <file_name># 添加所有文件
git add .

提交更改

<BASH>

# 提交到本地仓库
git commit -m "Commit message"# 提交并跳过暂存区
git commit -a -m "Commit message"

查看提交历史

<BASH>

# 查看提交历史
git log# 查看简洁的提交历史
git log --oneline# 查看某个文件的修改历史
git log <file_name>

撤销更改

<BASH>

# 撤销工作区的更改
git checkout -- <file_name># 撤销暂存区的更改
git reset HEAD <file_name># 修改最后一次提交
git commit --amend

删除文件

<BASH>

# 从 Git 和文件系统中删除文件
git rm <file_name># 从 Git 中删除文件,但保留在文件系统中
git rm --cached <file_name>

5. 远程仓库操作

添加远程仓库

<BASH>

# 添加远程仓库
git remote add origin <repository_url>

查看远程仓库

<BASH>

# 查看远程仓库信息
git remote -v

推送更改到远程仓库

<BASH>

# 推送当前分支到远程仓库
git push origin <branch_name># 推送所有分支到远程仓库
git push --all origin

拉取远程仓库的更改

<BASH>

# 拉取远程仓库的更改并合并
git pull origin <branch_name># 拉取远程仓库的更改但不合并
git fetch origin

删除远程分支

<BASH>

# 删除远程分支
git push origin --delete <branch_name>

6. 分支操作

创建分支

<BASH>

# 创建新分支
git branch <branch_name># 创建并切换到新分支
git checkout -b <branch_name>

切换分支

<BASH>

# 切换到指定分支
git checkout <branch_name>

查看分支

<BASH>

# 查看所有分支
git branch# 查看远程分支
git branch -r# 查看所有分支(包括远程)
git branch -a

合并分支

<BASH>

# 将指定分支合并到当前分支
git merge <branch_name># 查看合并冲突
git status

删除分支

<BASH>

# 删除本地分支
git branch -d <branch_name># 强制删除本地分支
git branch -D <branch_name>

重命名分支

<BASH>

# 重命名当前分支
git branch -m <new_branch_name># 重命名其他分支
git branch -m <old_branch_name> <new_branch_name>

查看分支历史

<BASH>

# 查看分支的提交历史
git log --graph --oneline --all

结语

本文档涵盖了 Git 的常用命令,帮助你更高效地使用 Git 进行版本控制。如果需要更深入的学习,可以参考 Pro Git 书籍。

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

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

相关文章

基于Python+Flask+MySQL+HTML的爬取豆瓣电影top-250数据并进行可视化的数据可视化平台

FlaskMySQLHTML 项目采用前后端分离技术&#xff0c;包含完整的前端&#xff0c;以flask作为后端 Pyecharts、jieba进行前端图表展示 通过MySQL收集格列数据 通过Pyecharts制作数据图表 这是博主b站发布的详细讲解&#xff0c;感兴趣的可以去观看&#xff1a;【Python爬虫可…

rpc grpc

RPC Remote Procedure Call&#xff0c;远程过程调用&#xff0c;是用来屏蔽分布式计算中的各种调用细节&#xff0c;使得调用远端的方法就像调用本地的一样。 客户端与服务端沟通的过程 客户端发送数据(以字节流的方式)&#xff1b;&#xff08;编码&#xff09;服务端接受…

GStreamer —— 2.15、Windows下Qt加载GStreamer库后运行 - “播放教程 1:Playbin 使用“(附:完整源码)

运行效果 介绍 我们已经使用了这个元素&#xff0c;它能够构建一个完整的播放管道&#xff0c;而无需做太多工作。 本教程介绍如何进一步自定义&#xff0c;以防其默认值不适合我们的特定需求。将学习&#xff1a; • 如何确定文件包含多少个流&#xff0c;以及如何切换 其中。…

30、Vuex 为啥可以进行缓存处理

Vuex 状态管理基础与缓存的关联 Vuex 的核心概念&#xff1a; Vuex 主要由五个部分组成&#xff1a;state、mutations、actions、getters和modules。其中&#xff0c;state是存储数据的地方&#xff0c;类似于一个全局的数据仓库。在这个菜谱 APP 的例子中&#xff0c;缓存的数…

25届数字IC验证秋招总结

一、个人概况 双非本9硕&#xff0c;2024年初开始通过白皮书蓝皮书自学验证&#xff0c;半年实习经验&#xff0c;有竞赛无专利论文&#xff0c;在秋招期间投递企业130余家&#xff0c;绝大部分投递岗位为数字验证&#xff0c;面试20家&#xff0c;收到5个offer。因为背景和相关…

【商城实战(37)】Spring Boot配置优化:解锁高效商城开发密码

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…

网页制作12-html,css,javascript初认识のJavascipt脚本基础

一、JavaScript的三种基本使用方法:body|head|外部 网页效果: 运行代码: .html <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title><script> function n1(){document.getElementById(…

全面对比分析:HDMI、DP、DVI、VGA、Type-C、SDI视频接口特点详解

在当今的多媒体时代&#xff0c;视频接口的选择对于设备连接和显示效果至关重要。不同的视频接口在传输质量、兼容性、带宽等方面各有优劣。本文将全面对比分析常用的视频接口HDMI、DP、DVI、VGA、Type-C、SDI&#xff0c;帮助读者更好地理解它们的特点和适用场景。 一、HDMI&…

麒麟服务器操作系统PostgreSQL环境部署手册

软件简介 PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。 ORDBMS(对象关系数据库系统)是面向对象技术与传统的关系数据库相结合的产物,查询处理是 ORDBMS 的重要组成部分,它的性能优劣将直接影响到DBMS 的性能。 软件环境 操作系统…

【蓝桥杯速成】| 4.递归

递归 题目一&#xff1a;最大公约数 问题描述 1979. 找出数组的最大公约数 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums &#xff0c;返回数组中最大数和最小数的 最大公约数 。 两个数的 最大公约数 是能够被两个数整除的最大正整数。 解题步骤 需要…

当大模型训练遇上“双向飙车”:DeepSeek开源周 DualPipe解析指南

前言 在大模型训练中&#xff0c;传统流水线并行因单向数据流和通信延迟的限制&#xff0c;导致GPU利用率不足60%&#xff0c;成为算力瓶颈。DeepSeek团队提出的DualPipe双向流水线架构&#xff0c;通过双向计算流与计算-通信重叠的创新设计&#xff0c;将前向与反向传播拆解为…

蓝桥杯好题推荐---前缀和

&#x1f308;个人主页&#xff1a; 羽晨同学-CSDN博客 &#x1f4ab;个人格言:“成为自己未来的主人~” 题目链接 【模板】前缀和https://ac.nowcoder.com/acm/problem/226282 解题思路 这种题目是要求我们找到一个数组中从l到r的元素的和&#xff0c;查询Q次&#xff0c;…

Nginx快速上手

什么是nginx Nginx 是一款开源的高性能 HTTP 和反向代理服务器&#xff0c;同时也提供了 IMAP/POP3/SMTP 代理功能。它由俄罗斯程序员 Igor Sysoev 于2004年首次发布&#xff0c;最初设计目的是为了解决 C10k 问题&#xff0c;即如何让单台服务器同时处理1万个并发连接的问题。…

【C++】:STL详解 —— 布隆过滤器

目录 布隆过滤器的概念 布隆过滤器的优点 布隆过滤器的缺点 布隆过滤器使用场景 布隆过滤器的实现 布隆过滤器的概念 布隆过滤器&#xff08;Bloom Filter&#xff09; 是一种空间效率极高的概率型数据结构&#xff0c;用于快速判断一个元素是否属于某个集合。其核心特点…

从Instagram到画廊:社交平台如何改变艺术家的展示方式

从Instagram到画廊&#xff1a;社交平台如何改变艺术家的展示方式 在数字时代&#xff0c;艺术家的展示方式正在经历一场革命。社交平台&#xff0c;尤其是Instagram&#xff0c;已经成为艺术家展示作品、与观众互动和建立品牌的重要渠道。本文将探讨社交平台如何改变艺术家的…

MySQL(事物上)

目录 示例&#xff1a; 一 引入事物 1. 概念 2. 事物的4大特性 3. 为什么要有事物&#xff1f; 二 事物操作 1. 查看存储引擎支持的事物 2. 事物的提交方式 2.1 查看事物的默认提交方式 2.2 设置事物的默认提交方式 2.3 查看事物的全局隔离级别 2.4 验证事物的回滚…

Spring Boot 实现多数据源配置

一、配置流程 在 Spring Boot 中实现多数据源配置通常用于需要连接多个数据库的场景。主要有以下几个步骤&#xff1a; 配置多个数据源的连接信息。定义多个数据源的 Bean。为每个数据源配置MyBatis的SqlSessionFactory和事务管理器。为每个数据源定义Mapper接口和Mapper XML…

p5.js:绘制各种内置的几何体,能旋转

向 豆包 提问&#xff1a;请编写 p5.js 示例&#xff0c; 绘制各种内置的几何体&#xff0c;能让这些几何体缓慢旋转。 cd p5-demo copy .\node_modules\p5\lib\p5.min.js . 此代码创建了一个包含多个内置几何体的 3D 场景&#xff0c;每个几何体都有不同的颜色和位置。运行代…

结构体定义与应用

引言 到今天为止,c语言的基础操作和基础数据类型,就都已经结束了,大家都知道,如果要实现复杂的功能,大家都可以通过函数封装调用,那么如果要实现基础数据类型的封装,该怎么办呢?答案就是结构体。 在C语言编程中,结构体(struct)是非常重要的一个概念,它为程序员提供…

MindGYM:一个用于增强视觉-语言模型推理能力的合成数据集框架,通过生成自挑战问题来提升模型的多跳推理能力。

2025-03-13&#xff0c;由中山大学和阿里巴巴集团的研究团队提出了MindGYM框架&#xff0c;通过合成自挑战问题来增强视觉-语言模型&#xff08;VLMs&#xff09;的推理能力。MindGYM框架通过生成多跳推理问题和结构化课程训练&#xff0c;显著提升了模型在推理深度和广度上的表…