Git命令之江湖百晓生

Git 命令大全

第一章:Git 简介

Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,用于有效、高速地处理从小到大的项目。它是一个命令行工具,用于跟踪和管理源代码历史记录。

第二章:Git 的 100 种命令

以下是 Git 的 100 种常用命令,每种命令都附有基本用法、使用场景和示例。

基础命令

  1. git init - 初始化一个新的 Git 仓库。

    • 场景:开始一个新项目。
    • 示例:git init my-project
  2. git clone [url] - 克隆远程仓库到本地。

    • 场景:获取远程仓库的副本。
    • 示例:git clone https://github.com/user/repo.git
  3. git add [file] - 将文件添加到暂存区。

    • 场景:准备提交。
    • 示例:git add README.md
  4. git commit -m "[message]" - 提交更改到仓库。

    • 场景:保存更改。
    • 示例:git commit -m "Add README"
  5. git status - 显示仓库的状态。

    • 场景:查看当前状态。
    • 示例:git status
  6. git log - 显示提交历史。

    • 场景:查看历史记录。
    • 示例:git log
  7. git diff - 显示更改的文件差异。

    • 场景:查看更改。
    • 示例:git diff
  8. git branch - 列出本地分支。

    • 场景:查看分支。
    • 示例:git branch
  9. git checkout [branch] - 切换到指定分支。

    • 场景:切换分支。
    • 示例:git checkout feature
  10. git merge [branch] - 合并指定分支到当前分支。

    • 场景:合并分支。
    • 示例:git merge feature

分支管理

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

    • 示例:git branch -a
  2. git branch -r - 列出远程分支。

    • 示例:git branch -r
  3. git branch -d [branch] - 删除本地分支。

    • 示例:git branch -d feature
  4. git branch -D [branch] - 强制删除本地分支。

    • 示例:git branch -D feature
  5. git checkout -b [branch] - 创建并切换到新分支。

    • 示例:git checkout -b feature
  6. git push origin --delete [branch] - 删除远程分支。

    • 示例:git push origin --delete feature
  7. git fetch - 从远程仓库获取所有分支。

    • 示例:git fetch
  8. git pull - 从远程仓库获取并合并到当前分支。

    • 示例:git pull origin master
  9. git push [remote] [branch] - 推送本地分支到远程仓库。

    • 示例:git push origin feature
  10. git remote -v - 显示远程仓库信息。

    • 示例:git remote -v

标签管理

  1. git tag - 列出所有标签。

    • 示例:git tag
  2. git tag [tagname] - 创建标签。

    • 示例:git tag v1.0.0
  3. git tag -d [tagname] - 删除标签。

    • 示例:git tag -d v1.0.0
  4. git push origin --tags - 推送所有标签到远程仓库。

    • 示例:git push origin --tags
  5. git checkout [tagname] - 切换到标签的版本。

    • 示例:git checkout v1.0.0

远程仓库管理

  1. git remote add [name] [url] - 添加远程仓库。

    • 示例:git remote add origin https://github.com/user/repo.git
  2. git remote rename [old] [new] - 重命名远程仓库。

    • 示例:git remote rename origin upstream
  3. git remote remove [name] - 删除远程仓库。

    • 示例:git remote remove upstream
  4. git remote set-url [name] [url] - 设置远程仓库的 URL。

    • 示例:git remote set-url origin https://github.com/newuser/repo.git
  5. git ls-remote [url] - 显示远程仓库的引用和哈希值。

    • 示例:git ls-remote https://github.com/user/repo.git

撤销和重置

  1. git reset [file] - 重置暂存区的文件。

    • 示例:git reset README.md
  2. git reset --hard - 重置工作目录和暂存区到最后一次提交。

    • 示例:git reset --hard
  3. git revert [commit] - 撤销指定的提交。

    • 示例:git revert 1234567
  4. git clean -f - 清除未跟踪的文件。

    • 示例:git clean -f
  5. git clean -fd - 清除未跟踪的文件和目录。

    • 示例:git clean -fd
  6. git stash - 暂存工作目录的更改。

    • 示例:git stash
  7. git stash pop - 恢复之前暂存的更改。

    • 示例:git stash pop
  8. git stash list - 列出所有暂存的更改。

    • 示例:git stash list
  9. git stash drop [stash] - 删除指定的暂存更改。

    • 示例:git stash drop stash@{0}
  10. git reflog - 显示所有参考的日志。

    • 示例:git reflog

子模块管理

  1. git submodule add [url] - 添加子模块。

    • 示例:git submodule add https://github.com/user/submodule.git
  2. git submodule update --init --recursive - 初始化和更新所有子模块。

    • 示例:git submodule update --init --recursive
  3. git submodule status - 显示子模块的状态。

    • 示例:git submodule status
  4. git submodule deinit [path] - 取消初始化子模块。

    • 示例:git submodule deinit path/to/submodule
  5. git submodule foreach [command] - 对所有子模块执行命令。

    • 示例:git submodule foreach git pull origin master

忽略文件

  1. git ignore - 列出全局忽略的文件。

    • 示例:git ignore
  2. git config --global core.excludesfile ~/.gitignore_global - 设置全局忽略文件。

    • 示例:git config --global core.excludesfile ~/.gitignore_global
  3. git add .gitignore - 将忽略文件添加到仓库。

    • 示例:git add .gitignore
  4. git check-ignore [file] - 检查文件是否被忽略。

    • 示例:git check-ignore build/
  5. git ls-files --others --ignored --exclude-standard - 列出所有被忽略的文件。

    • 示例:git ls-files --others --ignored --exclude-standard

交互式命令

  1. git add -i - 进入交互式添加模式。

    • 示例:git add -i
  2. git commit -a - 自动暂存所有已跟踪的更改并提交。

    • 示例:git commit -a
  3. git rebase -i [commit] - 交互式变基。

    • 示例:git rebase -i HEAD~3
  4. git cherry-pick [commit] - 选择性地应用提交。

    • 示例:git cherry-pick 1234567
  5. git bisect - 二分查找错误的提交。

    • 示例:git bisect start
  6. git blame [file] - 显示文件每一行的最后提交者。

    • 示例:git blame README.md
  7. git grep [pattern] - 在工作目录中搜索文本。

    • 示例:git grep "Hello World"
  8. git gui - 打开 Git 的图形用户界面。

    • 示例:git gui
  9. gitk - 打开 Git 的图形历史查看工具。

    • 示例:gitk
  10. git mergetool - 使用图形工具解决合并冲突。

    • 示例:git mergetool

配置和帮助

  1. git config --list - 列出所有 Git 配置。

    • 示例:git config --list
  2. git config --global user.name "[name]" - 设置全局用户名。

    • 示例:git config --global user.name "John Doe"
  3. git config --global user.email "[email]" - 设置全局用户邮箱。

    • 示例:git config --global user.email "john.doe@example.com"
  4. git config --global color.ui auto - 启用颜色显示。

    • 示例:git config --global color.ui auto
  5. git help [command] - 显示指定命令的帮助信息。

    • 示例:git help commit
  6. git --version - 显示 Git 的版本。

    • 示例:git --version
  7. git help config - 显示关于配置选项的帮助信息。

    • 示例:git help config
  8. git help每一天 - 显示关于每一天命令的帮助信息。

    • 示例:git help everyday
  9. git help glossary - 显示 Git 术语表。

    • 示例:git help glossary
  10. git help tutorial - 显示 Git 教程。

    • 示例:git help tutorial

工作流命令

  1. git flow init - 初始化一个 Git Flow 工作流。

    • 示例:git flow init
  2. git flow feature start [feature] - 开始一个新的功能分支。

    • 示例:git flow feature start login
  3. git flow feature finish [feature] - 完成一个功能分支。

    • 示例:git flow feature finish login
  4. git flow release start [version] - 开始一个新的发布分支。

    • 示例:git flow release start 1.0.0
  5. git flow release finish [version] - 完成一个发布分支。

    • 示例:git flow release finish 1.0.0
  6. git flow hotfix start [hotfix] - 开始一个新的热修复分支。

    • 示例:git flow hotfix start 1.0.1
  7. git flow hotfix finish [hotfix] - 完成一个热修复分支。

    • 示例:git flow hotfix finish 1.0.1
  8. git flow support start [support] - 开始一个新的支持分支。

    • 示例:git flow support start 1.0-stable
  9. git flow support finish [support] - 完成一个支持分支。

    • 示例:git flow support finish 1.0-stable
  10. git flow version - 显示当前 Git Flow 版本。

    • 示例:git flow version

子命令

  1. git clean - 清除工作目录中的未跟踪文件。

    • 示例:git clean
  2. git describe - 显示最近的标签和提交的哈希值。

    • 示例:git describe
  3. git fsck - 检查 Git 仓库的完整性。

    • 示例:git fsck
  4. git gc - 清理无用的文件和优化仓库。

    • 示例:git gc
  5. git prune - 移除引用的远程跟踪分支。

    • 示例:git prune
  6. git repack - 重新打包仓库中的包文件。

    • 示例:git repack
  7. git whatchanged - 显示仓库的变更日志。

    • 示例:git whatchanged
  8. git worktree add - 添加一个新的工作树。

    • 示例:git worktree add
  9. git worktree list - 列出所有工作树。

    • 示例:git worktree list
  10. git worktree remove - 删除一个工作树。

    • 示例:git worktree remove

脚本和钩子

  1. git init-db - 创建一个新的 Git 仓库。

    • 示例:git init-db
  2. git get-tar-commit-id [file] - 获取 tar 文件的提交 ID。

    • 示例:git get-tar-commit-id archive.tar
  3. git instaweb - 启动一个简单的 web 服务器。

    • 示例:git instaweb
  4. git archive - 创建一个归档文件。

    • 示例:git archive
  5. git bisect run [command] - 自动执行 bisect 测试。

    • 示例:git bisect run make
  6. git cat-file - 显示 Git 对象的信息。

    • 示例:git cat-file
  7. git check-attr - 检查文件属性。

    • 示例:git check-attr
  8. git checkout-index - 从索引中检出文件。

    • 示例:git checkout-index
  9. git commit-tree - 创建一个新的提交。

    • 示例:git commit-tree
  10. git diff-files - 显示工作目录和索引的差异。

- 示例:`git diff-files`

请注意,这个列表并不完整,Git 有更多命令和选项,可以根据具体需求使用。这些命令覆盖了 Git 的基本使用,分支管理,标签管理,远程仓库管理,撤销和重置,子模块管理,忽略文件,交互式命令,配置和帮助,工作流命令,子命令,脚本和钩子等多个方面。

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

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

相关文章

【软件设计师】面向对象技术

1.面向对象基础 1.1 基本概念 方法重载是函数名字相同,参数列表不同 组成 即组合,指整体与部分的关系,整体与部分生命周期相同 聚合 关联关系的一个特例,是体现整体与部分,即使has-a的关系,此时整体与部分…

C++语言学习(六)—— 类与对象(二)

目录 一、对象数组 二、对象指针 三、this 指针 四、类类型作为参数类型的三种形式 4.1 对象本身作为参数 4.2 对象指针作为参数 4.3 对象引用作为参数 五、静态成员 5.1 静态数据成员 5.2 静态成员函数 六、友元机制 6.1 友元函数 6.2 友元类 七、类的组合 八、…

【LakeHouse】Apache Iceberg + Amoro 助力网易构建云原生湖仓

Apache Iceberg Amoro 助力网易构建云原生湖仓 1.云原生湖仓背景与挑战2.Apache Iceberg 、Amoro 与云原生2.1 Apache Iceberg2.2 Amoro 简介 3.Apache Iceberg Amoro 云原生实践3.1 云上湖仓案例一3.2 云上湖仓案例二3.3 云上湖仓案例三 4.Amoro 未来发展规划 出品社区&…

【代码随想录——回溯算法二周目】

1. 组合总和 var (path []intres [][]int )func combinationSum(candidates []int, target int) [][]int {path make([]int, 0)res make([][]int, 0)dfs(candidates,target,0,0)return res }func dfs(candidates []int, target int,tempTarget int,start int) {if tempTarg…

Django-auth组件

Django-auth组件 1 表结构 我们从python manage.py migrate为我们创建的auth组件内置的表开始看 auth_user:用户表存储用户信息(登录admin后台) 里面的字段分两类:用户基本信息(用户名,邮箱,密…

华为OD机试【找出通过车辆最多颜色】(java)(100分)

1、题目描述 在一个狭小的路口,每秒只能通过一辆车,假设车辆的颜色只有 3 种,找出 N 秒内经过的最多颜色的车辆数量。 三种颜色编号为0 ,1 ,2。 2、输入描述 第一行输入的是通过的车辆颜色信息[0,1,1,2] &#xff0…

嵌入式0基础开始学习 ⅠC语言(4)循环结构

0.问题引入 求0~100数据之和: int sum 0; sum 1234....100; 废手,那么有没有一种好的方法取操作呢? int sum 0; int i 1; sum sum i; // sum 01; …

GB28181协议中常用SDP信息的含义

u字段:u行应填写视音频文件的URI。该URI取值有两种方式:简捷方式和普通方式。简捷方式直接采用产生该历史媒体的媒体源(如某个摄像头)的设备ID(应符合6.1.2的规定)以及相关参数(如回放类型、下载…

Three.js——二维平面、二维圆、自定义二维图形、立方体、球体、圆柱体、圆环、扭结、多面体、文字

个人简介 👀个人主页: 前端杂货铺 ⚡开源项目: rich-vue3 (基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL) 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 &#x1…

在Mac电脑下怎么部署QAnything?

在Mac电脑下部署QAnything,可以选择使用纯Python环境进行部署,这种方式不依赖GPU,适合在Mac等笔记本电脑上运行。以下是基于QAnything的纯Python环境安装教程的步骤[18]: 安装要求 Python 3.10(建议使用Anaconda3来管…

RabbitMQ-默认读、写方式介绍

1、RabbitMQ简介 rabbitmq是一个开源的消息中间件,主要有以下用途,分别是: 应用解耦:通过使用RabbitMQ,不同的应用程序之间可以通过消息进行通信,从而降低应用程序之间的直接依赖性,提高系统的…

功率电感的设计步骤

文章目录 1:高导磁气隙(铁氧体)1.1设计原理1.2 设计步骤 2 铁粉芯2.1:设计原理2.2:设计步骤 TI电感设计 学习视频原链接 截图 1 截图1 截图1 截图 2 截图2 截图2 1:高导磁气隙(铁氧体&#…

基于机器学习判断面部微表情发现哪些人更容易诊有帕金森病

1. 概述 帕金森病(Parkinson’s disease,PD)是一种慢性、进展性的神经退行性疾病,主要影响运动系统。该病症以大脑中黑质致密部多巴胺能神经元的逐渐丧失为特征,导致多巴胺(一种重要的神经递质&#xff09…

【Qt】深入探索Qt窗口与对话框:从创建到管理:QDockWidget(浮动窗口)、QDialog(对话框)

文章目录 前言:1. 浮动窗口2. 对话框介绍2.1. 示例:主窗口中,通过点击按钮,弹出一个新的对话框。2.2. 创建自定义对话框2.2.1. 纯代码的方式2.2.2. 图形化界面的方式 3. 模态对话框 和 非模态对话框4. Qt 内置对话框4.1. 消息对话…

Nginx R31 doc-12-NGINX SSL Termination 安全加密

前言 大家好,我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的,可以参考我的另一个项目: 手写从零实现简易版 tomcat minicat nginx 系列 从零手…

Git Submodules:深入理解与应用

在大型项目或跨多个独立项目的开发中,代码管理往往变得复杂。Git Submodules 是 Git 提供的一个强大功能,允许你在一个 Git 仓库(称为父仓库)中嵌套另一个 Git 仓库(称为子模块仓库)。本文将详细介绍 Git S…

Linux/Windows下如何同时运行服务端和客户端

假设服务端和客户端程序分别为server.c和client.c注意顺序! 先运行服务端,后运行客户端先结束客户端,后结束客户端 编译 gcc -o server server.cgcc -o server client.c运行 # 先运行服务器 ./server# 再运行客户端 ./client./表示当前目录…

Hybrid Block Storage for Efficient Cloud Volume Service——论文泛读

TOS 2023 Paper 论文阅读笔记整理 问题 传统桌面和服务器应用程序向云的迁移给底层云存储带来了高性能、高可靠性和低成本的挑战。由于这些传统应用程序的I/O模式和一致性要求,与采用特定编程模型和范式(如MapReduce[22]和RDD[52])的云原生…

香橙派AIpro(OrangePi AIPro)开发板初测评

开发板简介 最近,我拿到手一款Orange Pi AI Pro 开发板,它是香橙派联合华为精心打造的高性能AI 开发板,最早发布于2023年12月,其搭载了昇腾AI 处理器,可提供8TOPS INT8 的计算能力,内存提供了8GB 和16GB两…

基于jeecgboot-vue3的Flowable新建流程定义(一)

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、vue3版本因为流程分类是动态的&#xff0c;不再固定了&#xff0c;所以新建的时候需要选择建立哪种流程类型的流程 代码如下&#xff1a; <!-- 选择模型的流程类型对话框 -->&…