常见的 Git 命令

  1. 基础配置和信息查询 (Setup and Information)

git config --global user.name “Your Name”: 配置全局用户名,用于 Git 提交记录。

git config --global user.email “your.email@example.com”: 配置全局用户邮箱,同样用于 Git 提交记录。

git config --list: 列出当前的 Git 配置信息(包括全局、仓库级别等)。

git init: 在当前目录下初始化一个新的 Git 仓库 (repository)。

git status: 查看工作目录 (working directory) 和暂存区 (staging area) 的状态。显示哪些文件被修改了、哪些文件被暂存了、哪些文件未被 Git 跟踪等。

git help : 获取 Git 命令的帮助文档,例如 git help commit。

git version: 查看 Git 版本。

  1. 管理工作目录和暂存区 (Working with Changes)

git add : 将指定的文件添加到暂存区。

git add .: 将当前目录及其子目录下的所有修改和新增的文件添加到暂存区。

git add -u: 只将工作目录中 已跟踪 (tracked) 的文件的修改添加到暂存区(不包括新增的文件)。

git rm : 从工作目录和暂存区中删除指定的文件。

git rm --cached : 只从暂存区中删除文件,保留工作目录中的文件 (常用于停止跟踪某个文件,但不删除本地文件)。

git mv <old_file> <new_file>: 重命名或移动文件,并将其添加到暂存区。

git diff: 查看工作目录中 未暂存 (unstaged) 的修改内容。

git diff --staged: 查看暂存区中 已暂存 (staged) 的修改内容。

git diff : 比较两个分支之间的差异。

git restore : 撤销对工作目录中指定文件的修改,使其恢复到最近一次提交 (commit) 的状态 (未暂存的修改)。

git restore --staged : 将指定文件从暂存区移除,但保留工作目录中的修改 (取消暂存)。

git clean -fd: 删除工作目录中 未被跟踪 (untracked) 的文件和目录 (谨慎使用,会永久删除未跟踪的文件)。

  1. 提交历史 (Commit History)

git commit -m “Your commit message”: 提交暂存区中的更改到本地仓库,并添加提交信息 (commit message)。

git commit -am “Your commit message”: 相当于 git add -u 和 git commit -m 的组合,自动暂存已跟踪文件的修改并提交。

git commit --amend: 修改最近一次的提交 (commit)。可以修改提交信息,或者将暂存区的新更改添加到上一次提交中。

git log: 查看提交历史记录。

git log --oneline: 以简洁的单行格式显示提交历史。

git log --graph --oneline --decorate --all: 以图形化方式显示分支、合并关系和提交历史 (更直观)。

git log -p: 显示每次提交的详细 diff 信息。

git log --author=“Author Name”: 只显示指定作者的提交记录。

git log --grep=“keyword”: 只显示提交信息中包含指定关键词的提交记录。

git show : 查看指定提交的详细信息,包括提交信息、作者、日期和 diff 内容。

git reflog: 查看引用日志 (reference log),记录了 HEAD 和分支引用的变化,即使提交没有被任何分支或标签引用,也可以通过 reflog 找到 (用于找回丢失的提交)。

  1. 分支管理 (Branch Management)

git branch: 列出本地分支。

git branch -r: 列出远程分支。

git branch -a: 列出所有分支 (本地和远程)。

git branch <new_branch_name>: 创建新的本地分支 (但不会切换到新分支)。

git checkout -b <new_branch_name> <base_branch>: 创建新的本地分支并切换到新分支,基于 <base_branch> 创建。

git checkout <branch_name>: 切换到已存在的本地分支。

git checkout -: 切换到上一个分支 (例如,从 branchA 切换到 branchB 后,再执行 git checkout - 会切换回 branchA)。

git branch -d <branch_name>: 删除本地分支 (如果分支已合并到其他分支)。

git branch -D <branch_name>: 强制删除本地分支 (即使分支未合并)。

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

git merge <branch_name>: 将指定分支 <branch_name> 合并到当前分支。

git rebase <branch_name>: 将当前分支变基 (rebase) 到 <branch_name> 分支之上 (用于保持提交历史的线性整洁,但有风险,谨慎使用)。

  1. 远程仓库 (Remote Repositories)

git remote add origin <remote_repository_url>: 添加远程仓库地址,通常命名为 origin。

git remote -v: 查看已配置的远程仓库地址。

git fetch origin: 从远程仓库 origin 获取最新的分支和提交信息,但不会自动合并到本地分支。

git pull origin <branch_name>: 从远程仓库 origin 拉取指定分支 <branch_name> 的最新更改,并合并到当前本地分支 (相当于 git fetch origin <branch_name> + git merge origin/<branch_name>)。

git push origin <branch_name>: 将本地分支 <branch_name> 的提交推送到远程仓库 origin 的同名分支。

git push origin --all: 推送所有本地分支到远程仓库。

git clone <repository_url>: 克隆 (clone) 远程仓库到本地。

  1. 标签 (Tags)

git tag: 列出本地标签。

git tag -l ‘v1.*’: 列出匹配模式的标签,例如列出所有以 v1. 开头的标签。

git tag <tag_name>: 基于当前 HEAD 提交创建一个轻量级标签。

git tag -a <tag_name> -m “Tag message”: 创建一个附注标签 (annotated tag),可以添加标签信息。

git tag <tag_name> : 为指定的提交 创建标签 (可以为历史提交打标签)。

git push origin <tag_name>: 推送指定的标签到远程仓库。

git push origin --tags: 推送所有本地标签到远程仓库。

git checkout <tag_name>: 切换到标签 <tag_name> 所指向的提交 (会进入 “detached HEAD” 状态)。

git tag -d <tag_name>: 删除本地标签。

git push origin --delete tag <tag_name>: 删除远程标签。

  1. 储藏 (Stashing) - 暂存未完成的更改

git stash: 储藏当前工作目录和暂存区的更改,回到干净的工作状态 (用于切换分支前保存当前工作进度,稍后恢复)。

git stash save “Your stash message”: 储藏更改并添加描述信息。

git stash list: 列出所有储藏的记录。

git stash apply: 应用最近一次储藏的更改,但储藏记录仍然保留在列表中。

git stash pop: 应用最近一次储藏的更改,并从储藏列表中删除该记录。

git stash apply stash@{n}: 应用指定的储藏记录 (例如 stash@{0} 是最近一次储藏)。

git stash drop stash@{n}: 删除指定的储藏记录。

git stash clear: 清空所有储藏记录。

  1. 子模块 (Submodules) - 管理项目中的外部仓库 (较为进阶)

git submodule add <repository_url> : 添加一个子模块,将外部仓库添加到项目中的指定路径。

git submodule init: 初始化子模块 (在克隆包含子模块的项目后需要执行)。

git submodule update: 更新子模块,检出子模块仓库中子模块配置文件指定的提交版本。

git submodule update --init --recursive: 递归初始化和更新子模块 (如果子模块还有子模块)。

  1. 其他常用命令

.gitignore 文件: 在项目根目录下创建 .gitignore 文件,用于指定 Git 忽略跟踪的文件和目录 (例如,编译产生的临时文件、日志文件、node_modules 目录等)。

git blame : 查看文件的每一行代码是由谁在哪个提交中修改的 (用于代码追溯和责任归属)。

git bisect: 使用二分查找法快速定位引入 bug 的提交 (用于 bug 调试)。

git cherry-pick : 将指定提交 的更改应用到当前分支 (用于移植特定提交)。

git revert : 创建一个新的提交,撤销指定提交 的更改 (用于撤销某个提交的影响,但保留提交历史)。

学习建议:

循序渐进: 先从最常用的命令开始学习,例如 git init, git clone, git add, git commit, git status, git log, git branch, git checkout, git merge, git pull, git push。

实践操作: 多练习,在实际项目中使用 Git 命令,加深理解。

查阅文档: 遇到不熟悉的命令或用法,及时查阅 Git 官方文档或使用 git help 。

使用可视化工具: 配合 Git 可视化工具 (如 Git Graph, GitLens, SourceTree) 可以更直观地理解 Git 的工作原理和分支关系。

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

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

相关文章

深度解析:视频软编码与硬编码的优劣对比

视频编码 一、基本原理与核心技术 压缩原理 通过时空冗余消除实现数据压缩&#xff1a; 空间冗余&#xff1a;利用帧内预测&#xff08;如DC/角度预测&#xff09;消除单帧内相邻像素相似性。时间冗余&#xff1a;运动估计与补偿技术&#xff08;ME/MC&#xff09;减少连续帧间…

蓝耘智算 + 通义万相 2.1:为 AIGC 装上 “智能翅膀”,翱翔创作新天空

1. 引言&#xff1a;AIGC 的崛起与挑战 在过去几年中&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;技术突飞猛进。AIGC 涉及了文本生成、图像创作、音乐创作、视频制作等多个领域&#xff0c;并逐渐渗透到日常生活的方方面面。传统的内容创作方式已经被许多人类创…

行为模式---中介者模式

概念 中介者模式是一种行为模式&#xff0c; 他的核心思想是通过引入一个中介者对象&#xff0c;将多个对象之间的复杂交互逻辑统一管理。每个对象只需要与中介者通信&#xff0c;而不需要直接与其他对象交互&#xff0c;从而降低系统的耦合度。 适用场景 对象之间交互复杂&…

百度移动生态事业群聚焦UGC战略,贴吧迎新调整

易采游戏网3月8日独家消息&#xff1a;近日据内部消息人士透露&#xff0c;百度移动生态事业群正积极将用户生成内容&#xff08;UGC&#xff09;作为新的战略重点。此举标志着百度对UGC价值的重视与重塑&#xff0c;同时也预示着其旗下重要平台——百度贴吧将迎来一轮重大的调…

C#模拟鼠标点击,模拟鼠标双击,模拟鼠标恒定速度移动,可以看到轨迹

C#模拟鼠标点击&#xff0c;模拟鼠标双击&#xff0c;模拟鼠标恒定速度移动&#xff0c;可以看到轨迹 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks;namespa…

QGIS提取全国景区经纬度的完整流程

一、数据获取与预处理 数据来源选择 全国A级景区数据可从各省文化和旅游厅官网、国家文化和旅游部网站或第三方GIS数据平台获取。推荐使用2020-2021年更新的矢量数据&#xff08;shp格式&#xff09;或Excel表格&#xff0c;其中包含景区名称、地址、等级及WGS84经纬度信息。例…

如何进行postgreSQL专家认证

进行 PostgreSQL 专家认证主要有信创 PostgreSQL 认证和中国 PostgreSQL 考试认证等方式&#xff0c;以下以信创 PostgreSQL 认证为例介绍具体步骤&#xff1a; 了解认证体系 信创 PostgreSQL 认证由工信部人才交流中心组织及颁发证书&#xff0c;包括以下三个级别&#xff1a;…

【前端】【webpack-dev-server】proxy跨域代理

参考&#xff1a;https://www.bilibili.com/video/BV1c5SnYZEnZ?spm_id_from333.788.videopod.episodes&vd_source65c8707649747fd67b232866b69a5ebd&p138

批量在 Word 的指定位置插入页,如插入封面、末尾插入页面

我们经常会碰到需要在 Word 文档中插入新的页面的需求&#xff0c;比如在 Word 文档末尾插入一个广告页、给 Word 文档插入一个说明封面&#xff0c;在 Word 文档的中间位置插入新的页面等等。相信这个操作对于大部分小伙伴来说都不难&#xff0c;难的是同时给多个 Word 文档插…

在Windows 11的WSL中安装Kali Linux

Kali Linux 是网络安全从业者和爱好者的首选工具集&#xff0c;但直接在物理机或虚拟机上运行可能占用较多资源。借助 Windows Subsystem for Linux (WSL)&#xff0c;我们可以在Windows 11中原生运行Kali Linux&#xff0c;轻量且高效。本教程将手把手教你如何在WSL2中安装并配…

Flow Size Prediction with Short Time Gaps

Flow Size Prediction with Short Time Gaps 网络流量预测新突破&#xff1a;微秒级短流预测的可行性分析 在当今数据中心和云计算环境中&#xff0c;网络流量的精准预测是优化资源分配、实现智能负载均衡的关键。传统流量和预测聚焦于长时间间隔&#xff08;如秒级或分钟级&…

pandas——to_datatime用法

Pandas中pd.to_datetime的用法及示例 pd.to_datetime 是 Pandas 库中用于将字符串、整数或列表转换为日期时间&#xff08;datetime&#xff09;对象的核心函数。它在处理时间序列数据时至关重要&#xff0c;能够灵活解析多种日期格式并统一为标准时间类型。以下是其核心用法及…

数学建模:MATLAB强化学习

一、强化学习简述 强化学习是一种通过与环境交互&#xff0c;学习状态到行为的映射关系&#xff0c;以获得最大积累期望回报的方法。包含环境&#xff0c;动作和奖励三部分&#xff0c;本质是智能体通过与环境的交互&#xff0c;使得其作出的动作所得到的决策得到的总的奖励达…

【leetcode hot 100 160】相交链表

解法一&#xff1a;&#xff08;哈希集合&#xff09;利用HashSet保存一个链表的值&#xff0c;循环另一个列表&#xff0c;在HashSet中寻找该值。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x…

19. 大数据-技术生态简介

文章目录 前言一、Hadoop介绍1. 简介2. Hadoop发展史3. Hadoop现状 二、Hadoop特性1. Hadoop国外应用2. Hadoop国内应用 三、Hadoop架构变迁1. 发行版本2. Hadoop架构变迁(1.0-2.0变迁)3. Hadoop架构变迁(3.0新版本)4. 综述 四、技术生态体系 前言 大数据&#xff08;Big Data…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例3: 行选择

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

VsCode 快捷键备忘

移动光标及选择文本 Ctrl ← / → &#xff1a;以单词为单位移动游标Home / End&#xff1a;光标移到行首/行位Ctrl Home / End&#xff1a;光标移到文件首和文件尾Ctrl Shift \&#xff1a;在匹配的分隔符之间跳转 配对的分隔符 是指分隔代码元素的字符&#xff0c;比如字…

用数据唤醒深度好眠,时序数据库 TDengine 助力安提思脑科学研究

在智能医疗与脑科学快速发展的今天&#xff0c;高效的数据处理能力已成为突破创新的关键。安提思专注于睡眠监测与神经调控&#xff0c;基于人工智能和边缘计算&#xff0c;实现从生理体征监测、智能干预到效果评估的闭环。面对海量生理数据的存储与实时计算需求&#xff0c;安…

SQL_语法

1 数据库 1.1 新增 create database [if not exists] 数据库名; 1.2 删除 drop database [if exists] 数据库名; 1.3 查询 (1) 查看所有数据库 show databases; (2) 查看当前数据库下的所有表 show tables; 2 数据表 2.1 新增 (1) 创建表 create table [if not exists…

Qt 开发 OpenGL 程序流程

在用 Qt 开发 OpenGL 程序时&#xff0c;整体的工作流程分为几个关键步骤&#xff0c;最终目的是将数据传递给 GPU 并开始渲染。这一过程涉及到从代码编写到与着色器连接的多个操作&#xff0c;下面我将详细讲解每个步骤。 1. 设置 Qt 项目 这个步骤是准备工作&#xff0c;你首…