常见的 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 的工作原理和分支关系。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue2实现组件库的自动按需引入,unplugin-auto-import,unplugin-vue-components

1.使用ant-design-vue或者element-ui时&#xff0c;如何每个组件都去import导入组件&#xff0c;大大降低了开发效率&#xff0c;如果全局一次性注册会增加项目体积&#xff0c;那么如何实现既不局部引入&#xff0c;也不全局注册&#xff1f; 2.在element-plus官网看到有说明…

蓝桥杯备赛:一道数学题(练思维(同余的应用))

题目&#xff1a;请问由1-8组成的8位数中有多少个数字可以被1111整除&#xff1f; 首先这道题目看着很难&#xff0c;如果我们直接用代码做的话&#xff0c;也要跑很久&#xff0c;那能不呢想想有什么样的思路可以巧妙一点解开这道题目呢&#xff1f; 有的兄弟有的 这道题目的…

[Lc7_分治-快排] 快速选择排序 | 数组中的第K个最大元素 | 库存管理 III

目录 1. 数组中的第K个最大元素 题解 代码 2.库存管理 III 代码 1. 数组中的第K个最大元素 题目链接&#xff1a;215. 数组中的第K个最大元素 题目分析&#xff1a; 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要…

Unity引擎使用HybridCLR(华佗)热更新

大家好&#xff0c;我是阿赵。   阿赵我做手机游戏已经有十几年时间了。记得刚开始从做页游的公司转到去做手游的公司&#xff0c;在面试的时候很重要的一个点&#xff0c;就是会不会用Lua。使用Lua的原因很简单&#xff0c;就是为了热更新。   热更新游戏内容很重要。如果…

【神经网络】python实现神经网络(一)——数据集获取

一.概述 在文章【机器学习】一个例子带你了解神经网络是什么中&#xff0c;我们大致了解神经网络的正向信息传导、反向传导以及学习过程的大致流程&#xff0c;现在我们正式开始进行代码的实现&#xff0c;首先我们来实现第一步的运算过程模拟讲解&#xff1a;正向传导。本次代…

【Linux】冯诺依曼体系与操作系统理解

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;Linux 目录 前言 一、冯诺依曼体系结构 二、操作系统 1. 操作系统的概念 2. 操作系统存在的意义 3. 操作系统的管理方式 4. 补充&#xff1a;理解系统调用…

HTML-网页介绍

一、网页 1.什么是网页&#xff1a; 网站是指在因特网上根据一定的规则&#xff0c;使用 HTML 等制作的用于展示特定内容相关的网页集合。 网页是网站中的一“页”&#xff0c;通常是 HTML 格式的文件&#xff0c;它要通过浏览器来阅读。 网页是构成网站的基本元素&#xf…

STM32——GPIO介绍

GPIO(General-Purpose IO ports,通用输入/输出接口)模块是STM32的外设接口的核心部分,用于感知外界信号(输入模式)和控制外部设备(输出模式),支持多种工作模式和配置选项。 1、GPIO 基本结构 STM32F407 的每个 GPIO 引脚均可独立配置,主要特性包括: 9 组 GPIO 端口…

字节码是由什么组成的?

Java字节码是Java程序编译后的中间产物&#xff0c;它是一种二进制格式的代码&#xff0c;可以在Java虚拟机&#xff08;JVM&#xff09;上运行。理解字节码的组成有助于我们更好地理解Java程序的运行机制。 1. Java字节码是什么&#xff1f; 定义 Java字节码是Java源代码经过…

链表算法题目

1.两数相加 两个非空链表&#xff0c;分别表示两个整数&#xff0c;只不过是反着存储的&#xff0c;即先存储低位在存储高位。要求计算这两个链表所表示数的和&#xff0c;然后再以相同的表示方式将结果表示出来。如示例一&#xff1a;两个数分别是342和465&#xff0c;和为807…

blender学习25.3.8

【04-进阶篇】Blender材质及灯光Cycle渲染&后期_哔哩哔哩_bilibili 注意的问题 这一节有一个大重点就是你得打开显卡的渲染&#xff0c;否则cpu直接跑满然后渲染的还十分慢 在这里你要打开GPU计算&#xff0c;但是这还不够 左上角编辑&#xff0c;偏好设置&#xff0c;系…

【godot4.4】布局函数库Layouts

概述 为了方便编写一些自定义容器和控件、节点时方便元素布局&#xff0c;所以编写了一套布局的求取函数&#xff0c;统一放置在一个名为Layouts的静态函数库中。 本文介绍我自定义的一些布局计算和实现以及函数编写的思路&#xff0c;并提供完整的函数库代码&#xff08;持续…

Windows下配置Conda环境路径

问题描述&#xff1a; 安装好Conda之后&#xff0c;创建好自己的虚拟环境&#xff0c;同时下载并安装了Pycharm&#xff0c;但在Pycharm中找不到自己使用Conda创建好的虚拟环境。显示“Conda executable is not found” 解决办法&#xff08;依次尝试以下&#xff09; 起初怀…

OpenHarmony子系统开发编译构建指导

OpenHarmony子系统开发编译构建指导 概述 OpenHarmony编译子系统是以GN和Ninja构建为基座&#xff0c;对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能扩展的系统&#xff0c;该系统提供以下基本功能&#xff1a; 以部件为最小粒度拼装产品和独…

leetcode日记(80)复原IP地址

只能说之前动态规划做多了&#xff0c;看到就想到动态规划&#xff0c;然后想想其实完全不需要&#xff0c;回溯法就行了。 一开始用了很多莫名其妙的代码&#xff0c;写的很复杂……&#xff08;主要因为最后不能加‘.’&#xff09;其实想想只要最后加入vector时去掉最后一个…

LINUX网络基础 [五] - HTTP协议

目录 HTTP协议 预备知识 认识 URL 认识 urlencode 和 urldecode HTTP协议格式 HTTP请求协议格式 HTTP响应协议格式 HTTP的方法 HTTP的状态码 ​编辑HTTP常见Header HTTP实现代码 HttpServer.hpp HttpServer.cpp Socket.hpp log.hpp Makefile Web根目录 H…

【A2DP】SBC 编解码器互操作性要求详解

目录 一、SBC编解码器互操作性概述 二、编解码器特定信息元素(Codec Specific Information Elements) 2.1 采样频率(Sampling Frequency) 2.2 声道模式(Channel Mode) 2.3 块长度(Block Length) 2.4 子带数量(Subbands) 2.5 分配方法(Allocation Method) 2…

电脑内存智能监控清理,优化性能的实用软件

软件介绍 Memory cleaner是一款内存清理软件。功能很强&#xff0c;效果很不错。 Memory cleaner会在内存用量超出80%时&#xff0c;自动执行“裁剪进程工作集”“清理系统缓存”以及“用全部可能的方法清理内存”等操作&#xff0c;以此来优化电脑性能。 同时&#xff0c;我…

基于multisim的花样彩灯循环控制电路设计与仿真

1 课程设计的任务与要求 &#xff08;一&#xff09;、设计内容&#xff1a; 设计一个8路移存型彩灯控制器&#xff0c;基本要求&#xff1a; 1. 8路彩灯能演示至少三种花型&#xff08;花型自拟&#xff09;&#xff1b; 2. 彩灯用发光二极管LED模拟&#xff1b; 3. 选做…

Axure常用变量及使用方法详解

点击下载《Axure常用变量及使用方法详解.pdf》 摘要 Axure RP 作为一款领先的前端原型设计工具&#xff0c;提供了全面的 变量 和 函数 系统&#xff0c;以支持复杂的交互设计和动态内容展示。本文将从专业角度详细解析 Axure 中的 全局变量、中继器数据集变量/函数、元件变量…