Git 高级指南:完整命令大全及进阶用法

摘要

Git 是最流行的分布式版本控制系统。本指南详细整理了 Git 的 基础操作、高级技巧、远程仓库管理、代理配置、子模块管理 以及 进阶使用技巧,帮助你全面掌握 Git。


1. Git 基础命令

1.1 配置 Git 用户信息

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

💡 作用:设置全局用户名和邮箱,这些信息会出现在提交记录中。

1.2 初始化 Git 仓库

git init

💡 作用:初始化一个新的 Git 仓库。

1.3 克隆远程仓库

git clone <仓库URL>

💡 作用:从远程仓库克隆代码到本地。

1.4 添加文件到暂存区

git add <文件名>   # 添加单个文件
git add .          # 添加所有更改的文件

1.5 提交更改

git commit -m "提交描述"

1.6 查看 Git 状态

git status

1.7 查看提交历史

git log

1.8 查看文件修改

git diff            # 查看未暂存的更改
git diff --staged   # 查看已暂存但未提交的更改

1.9 撤销更改

git checkout -- <文件名>    # 放弃未提交的更改
git reset HEAD <文件名>     # 取消暂存
git reset --hard HEAD       # 丢弃所有未提交的更改

2. Git 远程操作

2.1 查看远程仓库

git remote -v

2.2 添加远程仓库

git remote add origin <仓库URL>

2.3 修改远程仓库地址

git remote set-url origin <新的仓库URL>

2.4 推送代码到远程

git push origin <分支名>
git push -u origin <分支名>   # 设为默认上游分支

2.5 拉取代码

git pull origin <分支名>

2.6 获取远程更新

git fetch origin

2.7 删除远程分支

git push origin --delete <分支名>

2.8 删除远程仓库关联

git remote remove origin

3. Git 代理配置

3.1 设置全局 HTTP 代理

git config --global http.proxy http://127.0.0.1:7897
git config --global https.proxy http://127.0.0.1:7897

3.2 取消全局代理

git config --global --unset http.proxy
git config --global --unset https.proxy

3.3 查看当前代理

git config --global --get http.proxy
git config --global --get https.proxy

3.4 仅对 GitHub 设置代理

git config --global http.https://github.com.proxy http://127.0.0.1:7897
git config --global https.https://github.com.proxy http://127.0.0.1:7897

3.5 取消仅对 GitHub 的代理

git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy

3.6 使用全局 SOCKS5 代理

git config --global http.proxy socks5://127.0.0.1:7897
git config --global https.proxy socks5://127.0.0.1:7897

3.7 取消全局 SOCKS5 代理

git config --global --unset http.proxy
git config --global --unset https.proxy

3.8 让公司内网 Git 不走代理

如果你在公司内网 Git (git.company.com) 访问不需要代理,确保 ~/.gitconfig 里没有它的代理配置,或者执行:

git config --global --unset http.https://git.company.com.proxy
git config --global --unset https.https://git.company.com.proxy

3.9 针对单个远程仓库设置代理

如果你希望 只对某个仓库 使用代理,而不影响全局 Git 配置,可以在该仓库的 config 文件中进行本地设置。

git config --global --unset http.https://git.company.com.proxy
git config --global --unset https.https://git.company.com.proxy
3.9.1 进入目标 Git 仓库
cd /path/to/your/repo
3.9.2 设置 仅针对该仓库 走代理
git config http.proxy http://127.0.0.1:7897
git config https.proxy http://127.0.0.1:7897

💡 此配置只会影响当前仓库,不会影响其他 Git 仓库的网络访问。

3.9.3 验证是否生效
git config --get http.proxy
git config --get https.proxy

如果返回 http://127.0.0.1:7897,说明该仓库代理已生效。


4. Git 子模块管理

4.1 添加子模块

git submodule add <子模块Git仓库URL> <子模块存放路径>

4.2 克隆包含子模块的仓库

git clone --recursive <仓库URL>

4.3 更新子模块

git submodule update --init --recursive

4.4 拉取子模块更新

git submodule update --remote

4.5 删除子模块

git submodule deinit -f <子模块路径>
rm -rf .git/modules/<子模块路径>
git rm -f <子模块路径>

4.6 修改子模块远程地址

git config -f .gitmodules submodule.<子模块路径>.url <新的URL>
git submodule sync

5. 进阶 Git 技巧

5.1 Git stash(存储未提交的修改)

git stash           # 暂存所有未提交的更改
git stash pop       # 恢复最近一次存储的更改
git stash list      # 查看存储的更改列表
git stash drop      # 删除最近一次存储的更改
git stash clear     # 清空所有存储的更改

5.2 修改最近一次提交

git commit --amend -m "新的提交描述"

5.3 软重置、硬重置

git reset --soft HEAD~1  # 撤回最近一次提交,保留更改
git reset --hard HEAD~1  # 撤回最近一次提交并删除所有更改

5.4 交互式变基

git rebase -i HEAD~3   # 交互式变基,修改最近 3 次提交

6. Git 配置文件

Git 的配置文件按 优先级 分为 3 层:

级别文件路径作用范围优先级(高 → 低)
仓库级(Local).git/config(当前仓库)仅影响当前 Git 仓库⭐⭐⭐⭐⭐
用户级(Global)~/.gitconfig~/.config/git/config影响当前用户的所有 Git 仓库⭐⭐⭐
系统级(System)/etc/gitconfig影响整个系统所有 Git 用户

💡 Git 读取配置时,优先使用更高优先级的配置
比如:如果 ~/.gitconfig 里定义了代理,而 .git/config 里没有,那 Git 会使用全局代理。

6.1 Linux / macOS 下配置文件存在的路径

  • 修改 ~/.gitconfig 影响当前用户。
  • 修改 /etc/gitconfig 影响所有用户。
  • 修改 .git/config 影响单个 Git 仓库。

6.2 Windows 下配置文件存在的路径

  • 修改 %USERPROFILE%\.gitconfig 影响当前用户。
  • 修改 C:\ProgramData\Git\config 影响所有用户。
  • 修改 C:\path\to\repo\.git\config 影响单个 Git 仓库。

6.3 全局代理(适用于所有 Git 服务器)

[http]proxy = http://127.0.0.1:7897[https]proxy = http://127.0.0.1:7897

6.4 仅对 GitHub 设置代理

[http "https://github.com"]proxy = http://127.0.0.1:7897[https "https://github.com"]proxy = http://127.0.0.1:7897

6.5 SOCKS5 代理

[http]proxy = socks5://127.0.0.1:7897[https]proxy = socks5://127.0.0.1:7897

总结

Git 是开发过程中不可或缺的工具。本文详细整理了 Git 基础命令、远程操作、代理配置、子模块管理 以及 高级 Git 技巧,希望可以帮助你提升 Git 使用效率。🚀

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

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

相关文章

【JavaWeb】快速入门——HTMLCSS

文章目录 一、 HTML简介1、HTML概念2、HTML文件结构3、可视化网页结构 二、 HTML标签语法1、标题标签2、段落标签3、超链接4、换行5、无序列表6、路径7、图片8、块1 盒子模型2 布局标签 三、 使用HTML表格展示数据1、定义表格2、合并单元格横向合并纵向合并 四、 使用HTML表单收…

MySQL 优化方案

一、MySQL 查询过程 MySQL 查询过程是指从客户端发送 SQL 语句到 MySQL 服务器&#xff0c;再到服务器返回结果集的整个过程。这个过程涉及多个组件的协作&#xff0c;包括连接管理、查询解析、优化、执行和结果返回等。 1.1 查询过程的关键组件 连接管理器&#xff1a;管理…

服务性能防腐体系:基于自动化压测的熔断机制

01# 背景 在系统架构的演进过程中&#xff0c;项目初始阶段都会通过压力测试构建安全护城河&#xff0c;此时的服务性能与资源水位保持着黄金比例关系。然而在业务高速发展时期&#xff0c;每个冲刺周期都被切割成以业务需求为单位的开发单元&#xff0c;压力测试逐渐从必选项…

六十天前端强化训练之第二十天React Router 基础详解

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、核心概念 1.1 核心组件 1.2 路由模式对比 二、核心代码示例 2.1 基础路由配置 2.2 动态路由示例 2.3 嵌套路由实现 2.4 完整示例代码 三、关键功能实现效果 四、…

grad_traj_optimization 开源项目

开源项目 grad_traj_optimization 使用教程-CSDN博客 ubuntu如何切换到root用户_ubuntu切换到root用户-CSDN博客 catkin_make: command not found 解决办法_catkin-make not found-CSDN博客 这就说明需要编译的package虽然存在&#xff0c;但不在指定的目录下。catkin_make命…

深圳南柯电子|净水器EMC测试整改:水质安全与电磁兼容性的双赢

在当今注重健康生活的时代&#xff0c;净水器作为家庭用水安全的第一道防线&#xff0c;其性能与安全性备受关注。其中&#xff0c;电磁兼容性&#xff08;EMC&#xff09;测试是净水器产品上市前不可或缺的一环&#xff0c;它直接关系到产品在复杂电磁环境中的稳定运行及不对其…

要登录的设备ip未知时的处理方法

目录 1 应用场景... 1 2 解决方法&#xff1a;... 1 2.1 wireshark设置... 1 2.2 获取网口mac地址&#xff0c;wireshark抓包前预过滤掉自身mac地址的影响。... 2 2.3 pc网口和设备对接... 3 2.3.1 情况1&#xff1a;... 3 2.3.2 情…

GHCTF web方向题解

upload?SSTI! import os import refrom flask import Flask, request, jsonify,render_template_string,send_from_directory, abort,redirect from werkzeug.utils import secure_filename import os from werkzeug.utils import secure_filenameapp Flask(__name__)# 配置…

Vision Transformer (ViT):将Transformer带入计算机视觉的革命性尝试(代码实现)

Vision Transformer (ViT)&#xff1a;将Transformer带入计算机视觉的革命性尝试 作为一名深度学习研究者&#xff0c;如果你对自然语言处理&#xff08;NLP&#xff09;领域的Transformer架构了如指掌&#xff0c;那么你一定不会对它在序列建模中的强大能力感到陌生。然而&am…

蓝耘携手通义万象 2.1 图生视频:开启创意无限的共享新时代

在科技飞速发展的今天&#xff0c;各种新奇的技术不断涌现&#xff0c;改变着我们的生活和工作方式。蓝耘和通义万象 2.1 图生视频就是其中两项非常厉害的技术。蓝耘就像是一个超级大管家&#xff0c;能把各种资源管理得井井有条&#xff1b;而通义万象 2.1 图生视频则像是一个…

IEC61850标准下MMS 缓存报告控制块 ResvTms详细解析

IEC61850标准是电力系统自动化领域唯一的全球通用标准。IEC61850通过标准的实现&#xff0c;使得智能变电站的工程实施变得规范、统一和透明&#xff0c;这大大提高了变电站自动化系统的技术水平和安全稳定运行水平。 在 IEC61850 标准体系中&#xff0c;ResvTms&#xff08;r…

【DeepSeek应用】DeepSeek模型本地化部署方案及Python实现

DeepSeek实在是太火了,虽然经过扩容和调整,但反应依旧不稳定,甚至小圆圈转半天最后却提示“服务器繁忙,请稍后再试。” 故此,本文通过讲解在本地部署 DeepSeek并配合python代码实现,让你零成本搭建自己的AI助理,无惧任务提交失败的压力。 一、环境准备 1. 安装依赖库 …

蓝思科技冲刺港股上市,双重上市的意欲何为?

首先&#xff0c;蓝思科技冲刺港股上市&#xff0c;这一举措是其国际化战略进入实质性阶段的重要标志。通过港股上市&#xff0c;蓝思科技有望进一步拓宽融资渠道&#xff0c;这不仅能够为公司带来更加多元化的资金来源&#xff0c;还能够降低对单一市场的依赖风险&#xff0c;…

深入探讨RAID 5的性能与容错能力:实验与分析(磁盘阵列)

前言—— 本实验旨在探讨 RAID 5 的性能和容错能力。通过创建 RAID 5 阵列并进行一系列读写性能测试及故障模拟&#xff0c;我们将观察 RAID 5 在数据冗余和故障恢复方面的表现&#xff0c;以验证其在实际应用中的可靠性和效率。 首先说明&#xff1a;最少三块硬盘, 使用 4 块…

excel中两个表格的合并

使用函数&#xff1a; VLOOKUP函数 如果涉及在excel中两个工作表之间进行配对合并&#xff0c;则&#xff1a; VLOOKUP(C1,工作表名字!A:B,2,0) 参考&#xff1a; excel表格中vlookup函数的使用方法步骤https://haokan.baidu.com/v?pdwisenatural&vid132733503560775…

基于ssm的宠物医院信息管理系统(全套)

一、系统架构 前端&#xff1a;html | layui | vue | element-ui 后端&#xff1a;spring | springmvc | mybatis 环境&#xff1a;jdk1.8 | mysql | maven | tomcat | idea | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页…

UE小:UE5.5 PixelStreamingInfrastructure 使用时注意事项

1、鼠标默认显示 player.ts中的Config中添加HoveringMouse:true 然后运行typescript\package.json中的"build":npx webpack --config webpack.prod.js

iOS底层原理系列01-iOS系统架构概览-从硬件到应用层

1. 系统层级结构 iOS系统架构采用分层设计模式&#xff0c;自底向上可分为五个主要层级&#xff0c;每层都有其特定的功能职责和技术组件。这种层级化结构不仅使系统更加模块化&#xff0c;同时也提供了清晰的技术抽象和隔离机制。 1.1 Darwin层&#xff1a;XNU内核、BSD、驱动…

Ubuntu从源代码编译安装QT

1. 下载源码 wget https://download.qt.io/official_releases/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz tar xf qt-everywhere-src-5.15.2.tar.xz cd qt-everywhere-src-5.15.22. 安装依赖库 sudo apt update sudo apt install build-essential libgl1-mesa-d…

深度学习基础:线性代数本质4——矩阵乘法

两个矩阵相乘的意义就是复合变换 1. 复合变换 例如先进行旋转变换再进行剪切变换&#xff0c;这很明显是两个变换&#xff0c;但是从总体上看可以看作是一个复合变换&#xff0c;是旋转和剪切作用的总和。 和其他线性变换一样&#xff0c;我们也可以通过记录变换后的 i j 来实…