Git下载与仓库配置

CSDN:https://blog.csdn.net/South_Rosefinch/article/details/159251593

1、Git下载与安装

1.1 git下载网址

Git安装网站:

https://git-scm.com/install/

在这里插入图片描述

选择对应版本,这里演示是Windows/x64的
在这里插入图片描述

1.2 安装程序配置详解

找到下载好的安装程序,双击运行,弹窗用户账户控制,点击即允许修改,然后跟随安装向导进行安装

在这里插入图片描述

阅读GUN通用公共许可证,点击Next继续。

在这里插入图片描述

然后选择安装位置,切记不要使用中文路径。选好后点击Next

然后就是选择安装组件,

在这里插入图片描述

这里给到翻译版本:

在这里插入图片描述

这一步的主要目的是:让您选择 Git 安装包附带哪些额外的功能和集成工具。

这些勾选项大多是为了提升使用 Git 的便利性和集成度:

  • 在桌面上:创建一个“Git Bash”的桌面快捷方式。
  • Windows 文件资源管理器集成非常重要! 这会在您右键点击文件夹或桌面时,在右键菜单中添加“Git Bash Here”和“Git GUI Here”的选项,让您能快速在当前位置打开 Git 工具。
  • 在此打开 Git Bash 程序:与上一项关联,具体实现右键菜单集成。
  • .sh文件关联至 Bash:让系统知道,.sh后缀的脚本文件默认用 Git 自带的 Bash 来打开/运行。
  • 每天检查更新:为 Git for Windows 启用自动更新检查。
  • 在 Windows 终端中添加 Git Bash 配置文件:如果您使用新的 Windows Terminal,这将把 Git Bash 添加为一个可选的终端配置文件,方便您在其中直接使用。

一般来说默认 选择即可,直接点击Next

然后就是选择开始菜单文件夹:

在这里插入图片描述

给到翻译:

在这里插入图片描述

简单来说,它的主要作用是:

  1. 定制快捷方式的位置:安装完成后,您可以在“开始菜单”中找到 Git 的启动图标。这一步就是让您决定把这个图标放在“开始菜单”的哪个文件夹里。
  2. 方便您找到程序:默认会创建一个名为 Git的文件夹,里面会包含 Git BashGit GUIGit CMD等快捷方式。这样您的开始菜单会更整洁有序。

不建议勾选“不要创建‘开始菜单’文件夹”,这样快捷方式会直接散落在“开始菜单”的根目录中。

故而直接选择Next

在这里插入图片描述

依旧给到翻译:

在这里插入图片描述

这个步骤的核心目的是:当 Git 需要您输入多行文字时(比如填写提交信息、解决合并冲突),它会自动打开这个指定的编辑器供您使用。点击右方的下拉选择会看到其他编辑器选项:

在这里插入图片描述

还是建议选择默认的Vim编辑器,因为其强大性,即使后面发现实在觉得使用起来困难也没事,这个设置在安装后可以随时通过 Git 配置命令修改。例如,在终端里运行 git config --global core.editor “notepad”即可改为记事本。

故而这一步 依旧默认选择Next

在这里插入图片描述

依旧翻译给到下方:

在这里插入图片描述

这是选择一个仓库的默认分支名称,可以理解为一个程序的默认根目录文件名。和编辑器设置一样,这个设置也可以在安装后随时通过命令修改:git config --global init.defaultBranch main

故而还是建议选择默认 然后Next

在这里插入图片描述

展示翻译:

在这里插入图片描述

展示解释:

这一步的核心目的:配置 Windows 系统的 PATH 环境变量,以便您能在不同的命令行工具(如CMD、PowerShell)中直接使用 git命令。(有关环境变量的详细解释和配置在下一小节中会讲解)

展示选择:

选择默认通过命令行以及第三方软件使用Git。然后点击Next

在这里插入图片描述

直接解释SSH:

SSH(安全外壳协议)是一种加密网络协议,用于安全地远程访问和管理服务器。它的核心作用是:让你能在一个加密的管道里,安全地远程操作另一台计算机(通常是服务器)。

对于 Git 而言,SSH 是您与 GitHub、GitLab 等远程代码仓库进行安全身份验证和通信的主要方式之一。当您使用 git clonegit push等命令时,如果使用 SSH 协议的仓库地址(如 git@github.com:...),就会用到 SSH 客户端。

使用捆绑的 OpenSSH的含义:选择使用 Git 安装包自带的、已经集成好的SSH 客户端(OpenSSH)

使用外部 OpenSSH的含义:不使用 Git 自带的,而是指定使用您操作系统上已安装的其他 SSH 客户端,如果您已经在系统层面统一管理 SSH 密钥和配置(例如 ~/.ssh/config文件),使用外部客户端可以让所有工具(Git、命令行、其他软件)共享同一套配置。

由于我是新手小卡拉米,故而请直接使用默认的【Used bundled OpenSSH】,然后点击Next

同理:这个选择在安装后是可以修改的。如果您未来成为高级用户,希望改用系统 SSH,可以通过 Git 配置命令 git config --global core.sshCommand “外部ssh路径”来更改。

在这里插入图片描述

这一步是在选择由哪个底层安全库来负责处理 HTTPS 连接中的加密和证书验证工作。

HTTP 协议:定义了客户端如何请求、服务器如何响应的标准格式。它是互联网数据交换的基础“语言”。

HTTPS 是在 HTTP 协议基础上增加了 SSL/TLS 加密层 的安全版本,用于保护网络通信的安全。

SSL(Secure Sockets Layer)TLS(Transport Layer Security) 是用于保护网络通信安全的协议。它们通过加密、身份验证和数据完整性检查,确保数据在传输过程中不被窃取或篡改。

SSL 是由 Netscape 公司开发的,最初用于保护 Web 浏览器与服务器之间的通信。TLS 是 SSL 的升级版本。

当您使用 https://开头的地址克隆或推送代码时(例如 https://github.com/用户名/仓库.git),Git 需要通过 HTTPS 协议与服务器建立加密的、安全的连接。SSL/TLS 就是实现这种加密和安全认证的底层技术。

比较:

  1. 使用 Git 自带的 OpenSSL 库 和自带的 证书包文件ca-bundle.crt)来验证远程服务器的身份。选择此项能让 Git 在 Windows 上的行为与在其他系统上保持一致。但是证书验证依赖于 Git 自己维护的那个 ca-bundle.crt文件。如果需要添加自定义的或公司的根证书,需要手动修改这个文件。
  2. 使用 Windows 操作系统内置的 Schannel 安全框架,并直接利用系统的证书存储来验证服务器证书。证书管理完全交给 Windows。系统更新自动更新根证书,无需为 Git 单独维护。通常与 Windows 系统有更好的兼容性和性能表现。

依旧默认选择【Use the native Windows Secure Channel library】,然后点击Next

在这里插入图片描述

依旧展示翻译:

在这里插入图片描述

这是 Git for Windows 安装过程中一个极为重要的配置步骤,它解决了不同操作系统之间一个历史悠久的兼容性问题:文本文件中的换行符

这一步的设置,直接影响您日后在 Windows 与 Linux/macOS 系统之间协作时,代码或文本文件是否会显示为“每一行都被修改” 的混乱情况。

核心问题:什么是换行符?

  • LF (\n):在 Linux 和 macOS 系统中,换行用一个字符表示,称为 “Line Feed”。
  • CRLF (\r\n):在 Windows 系统中,换行用两个连续的字符表示,称为 “Carriage Return + Line Feed”。

当您在不同系统的机器上协作时,如果 Git 不进行处理,同一个文件在 Windows 上会被添加 CRLF,而在 Linux 上只有 LF,导致 Git 误认为文件内容被大规模修改。

这里依旧默认第一个就可以,点击Next

在这里插入图片描述

以下是其翻译:

在这里插入图片描述

这是 Git for Windows 安装时让你选择 Git Bash 的运行环境

  • MinTTY(默认推荐):一个功能更强的现代终端,用起来更像 Linux/Mac 的终端,体验更好(如缩放、字体)。但运行像 python这样的 Windows 原生交互程序时,需要加 winpty命令。
  • Windows 控制台:就是系统自带的 cmd.exe窗口。好处是能直接完美运行所有 Windows 程序,无需额外命令。缺点是功能较弱,体验较差。

简单选择建议:大多数开发者选默认的 MinTTY 即可。如果你主要用 Git Bash 来运行 Python/Node.js 的交互模式,且不想总打 winpty,可以选 Windows 控制台。

这里依旧默认使用MinTTY终端,然后点击Next

在这里插入图片描述

依旧给到翻译:

在这里插入图片描述

git pull 用于从远程仓库获取最新代码并与当前本地分支合并,本质上是 git fetch + git merge的组合操作。

命令可能还不理解,这里给到一个场景:

想象一下,您和同事共同维护一份线上文档(这就是远程仓库)。

  1. 您先下载了文档到本地电脑,并做了一些修改(这就是您的本地提交)。
  2. 同时,您的同事也修改了这份线上文档并保存了(这就是远程仓库有了新提交)。

现在,您想获取同事的最新修改,同时也要把自己本地的修改合并进去——这个操作就是 git pull。而这里的设置就是在问您:“您希望用什么‘策略’来完成这次同步?”

三种策略的比喻:

1. 快进或合并(默认)

  • 做法:把同事的新修改直接拿过来,然后在文档里插入一个明显的“合并记录”,说明“在此时,我和同事的版本合并了”。
  • 结果:文档完整记录了所有事情的发生过程,但合并记录可能会比较多。
  • 就像:写会议纪要,把两个人的发言原样记录,并注明“此处开始合并讨论”。

2. 重新合并(变基)

  • 做法假装自己是在同事修改之后才开始写自己的部分,然后把自己的修改接在同事最新内容的后面。
  • 结果:文档读起来像按时间顺序一个人写完的,非常流畅。但实际上改动了你之前工作的“时间线”
  • 就像:重写会议纪要,让讨论看起来是一条线进行的,没有分叉。

3. 只有快进

  • 做法只允许一种情况:如果自己还没开始修改,就直接把同事的更新拿过来。如果自己已经修改了,系统就报错,要求您必须手动决定怎么办。
  • 结果:最安全,绝对不会自动做任何您可能不理解的操作。
  • 就像:设置了一个规则,只要有人动过文档,就必须人工审核才能同步。

默认选择【Fast-forward or merge】即可,继续点击Next

在这里插入图片描述

这个设置是帮你自动保存登录信息的,让你不用每次推送代码都输密码。

两个选项的区别:

  • Git Credential Manager(默认推荐):第一次操作时登录后,它会安全保存你的账号密码或令牌,以后全部自动登录。适合个人电脑。
  • None(无):不保存任何信息,每次操作都要手动输密码。只建议在公用电脑上使用。

用自己的电脑直接选默认的【Git Credential Manager】,然后点Next就行。

在这里插入图片描述

这张图是 Git for Windows 安装时的额外功能选项。

两个选项的作用:

  1. 启用文件系统缓存性能加速。勾选后能大幅提升在大型仓库中操作(如 git status)的速度。建议保持勾选
  2. 启用符号链接功能支持。允许 Git 创建和使用类似“快捷方式”的符号链接。仅当您的项目明确需要此功能时才需勾选,否则可保持默认(不勾选)。

直接使用当前默认设置(只勾选第一项),然后点击Install安装即可。

在这里插入图片描述

等待安装。

在这里插入图片描述

这里第一个是运行Git Bash,第二个是查看发行笔记。

结束后可以都不勾选,直接点击Finish

可以在cmd命令行(Win+R,然后输入CMD回车进入命令行)中使用命令检查当前git版本以观察是否下载成功。

git --version

在这里插入图片描述

1.3 Git环境变量配置

(1)环境变量的解释:

环境变量是在操作系统中具有特定名字的对象,它包含了一个或多个应用程序所需的信息。(看不懂就对了,我也看不懂?。?)

其实可以这样理解:环境变量相当于一个手册,当你需要某个东西(如运行程序)的时候,会在里面查询如何去做。故而可以使用下面这段话解释。

首先理解一下键值对:

键值对 是计算机科学中一种非常基础且重要的数据组织方式。它由两个关联的部分组成:

  • : 一个唯一的标识符,相当于名字、身份证号或字典里的“词条”。
  • : 与键相关联的数据,相当于具体信息、内容或字典里的“解释”。

核心思想是:通过唯一的“键”,可以快速、准确地找到其对应的“值”。

环境变量是操作系统或应用程序运行时使用的动态键值对(Key-Value Pair),用于存储系统或用户环境的配置信息。它们可以被运行在系统上的进程(程序)访问,以决定其行为或获取必要的路径和数据。设置环境变量有助于简化软件的运行和管理,尤其是在需要频繁使用命令行工具的情况下。

核心特点与用途:

  1. 全局访问:一旦设置,系统中的任何程序或脚本都可以读取这些变量的值。
  2. 配置分离:将配置信息(如路径、密钥、模式)从程序代码中分离出来,使程序更灵活,易于在不同环境(开发、测试、生产)中部署。
  3. 系统路径:最经典的例子是 PATH变量,它告诉系统当用户输入一个命令时,应该去哪些目录查找对应的可执行文件。
  4. 存储敏感信息:可用于存储API密钥、数据库密码等敏感数据(但需结合安全最佳实践,不推荐明文存储在普通环境变量文件中)。

常见示例:

  • PATH: 指定可执行文件的搜索路径。
  • HOME (或 USERPROFILE): 指向当前用户的主目录。
  • JAVA_HOME: 指定Java开发工具包(JDK)的安装位置。
  • NODE_ENV: 在Node.js生态中,常用它来指定当前是“development”(开发)还是“production”(生产)环境。

在这里由于Git是一个运行程序,我们为了可以在任何地方快速的使用命令行来打开Git,这里需要配置一下环境变量Path。

我们前面已经勾选了自动配置环境教程,(点此处跳转前面配置位置)可以看一下自动配置的环境变量在哪个位置。

(2)Path的两种形式的配置区别

首先需要了解,Path变量有两种:

特性 系统环境变量(全局 Path) 用户环境变量(用户 Path)
作用范围 这台电脑上的所有用户账户生效 仅对当前登录的这一个用户账户生效
存储位置 系统级配置文件中(如 C:\Windows\System32\... 用户个人配置文件中(如 C:\Users\[你的用户名]\...
修改权限 需要管理员权限才能修改 当前用户自己就可以直接修改
优先级 较低(后被搜索) 较高(先被搜索)
典型用途 安装系统级、所有用户都需要的基础软件(如Java运行时、系统工具) 安装个人开发工具、脚本、或某个用户独有的程序(如Python、Node.js、自定义工具链)

关键机制:路径的搜索顺序

当您在命令行输入一个命令(如 python)时,系统会按顺序在Path列出的目录里查找可执行文件:

  1. 首先,查找当前命令行所在的目录
  2. 然后,查找当前用户的Path中列出的所有目录。
  3. 最后,查找系统Path中列出的所有目录。
  4. 一旦找到,就立刻执行

正因为用户Path先被搜索,所以它的优先级更高。 这允许你在自己的账户下安装不同版本的工具,而不会影响其他用户或系统全局设置。

实际应用场景与建议:

  • 选择“用户Path”:这是最安全、最推荐的个人使用方式。
    • 场景:安装个人开发环境(Python、Go、Rust)、项目相关的命令行工具。
    • 优点:不需要管理员权限,不会影响其他用户,配置独立且干净。
  • 选择“系统Path”:通常用于安装基础、共享的软件。
    • 场景:安装JDK、.NET Framework、Docker Desktop(需要系统服务)等希望所有账户都能使用的软件。
    • 注意:需要管理员权限,修改不当可能影响系统稳定性。

(3)Path配置流程

  1. 打开环境变量位置

    (可以直接在Windows搜索中输入环境变量查找,也可以按照以下方法打开)

    打开设置:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  2. 点击分组的Path,然后点击编辑进入

    在这里插入图片描述

    在系统变量里面找到了该配置

  3. 按需进行环境变量的更改,环境变量Path配置的就是程序的运行目录,故而可以找到自己的Git下载目录,点开cmd文件夹,然后复制目录,点击右侧的新建,在其中粘贴刚刚复制的目录即可。

    在这里插入图片描述

  4. 验证:打开命令行,然后输入git --version查看是否正确输出即可确认自己的环境变量是否配置成功。

2、代码仓库选择与注册

2.1 代码仓库简介

代码仓库是用于存储和管理项目代码及历史版本的核心工具。你可以把它理解为一个专为代码设计的“超级时间机器+协作空间”。

它主要分为两类,协同工作:

  1. 本地仓库

    • 是什么:位于你自己计算机上的仓库(即项目目录中的 .git隐藏文件夹)。

    • 核心作用版本管理。它完整记录你在本地的每一次代码更改(提交),允许你查看历史、比较差异或回退到任意旧版本。

  2. 远程仓库

    • 是什么:托管在网络服务器(如 GitHub、GitLab)上的仓库。

    • 核心作用备份、共享与协作中心。它将你的代码和版本历史安全地保存在云端,并允许多人基于同一份代码进行协作开发。

一个典型的现代开发工作流如下:

  1. 本地操作:你在自己电脑的本地仓库中编写代码,并提交版本。
  2. 推送同步:将本地提交推送GitHub远程仓库进行备份和分享。
  3. 团队协作:队友从远程仓库克隆或拉取最新代码到他们的本地仓库
  4. 循环迭代:如此往复,实现并行开发和代码整合。

简单总结本地仓库是你的私人工作区,负责记录每一步草稿;远程仓库是团队共享的云盘和发布平台,确保大家最终基于同一份终稿协作。两者通过 Git 命令连接,构成了分布式版本控制系统的基础。

2.2 版本控制系统简介

从上一小节中提到的分布式版本控制系统开始介绍,分布式版本控制系统是一种每个开发者都拥有完整项目历史副本的版本管理架构。以 Git 为代表,它与传统的集中式系统(如 SVN)有根本区别。

核心原理:人人都有完整备份

在分布式系统中,不存在一个绝对的“中央服务器”。每个开发者的电脑上都有一个完整的本地仓库,包含项目的全部历史记录和版本分支。

与集中式系统的主要对比:

方面 集中式版本控制系统 分布式版本控制系统
架构 单一的中央服务器存储所有历史,用户只有当前文件。 每个用户本地都有一个完整的仓库副本(包含全部历史)。
核心操作 几乎所有操作(查看历史、提交等)都需要与中央服务器联网进行。 绝大多数操作(提交、分支、合并)都在本地完成,速度极快。
网络依赖 高度依赖网络。无网络时,几乎无法进行有效工作。 网络非必需。可以离线自由提交、创建分支,联网后再同步。
数据安全 风险集中。中央服务器故障可能导致历史数据丢失。 安全冗余。每个开发者的电脑都是一个完整的备份。
工作流程 线性、中心化的工作模式。 灵活、多中心。可以方便地与多个远程仓库协作。

除此之外还有本地版本控制系统,以RCS(Revision Control System)为例,其原理为所有版本历史都存储在单台计算机的本地文件中。它通过对比文件差异来管理版本。其特点是无法进行团队协作,仅适用于个人管理本地文件的版本历史。这是最早期、最简单的形式。

现代主流的版本控制系统即为本章介绍的以Git为例的分布式版本控制系统

2.3 远程代码托管平台

主要远程代码托管平台:

平台名称 主要特点 适用场景
GitHub 全球最流行,开源生态中心,拥有强大的社区、协作工具和 Actions CI/CD。 个人开源项目、技术分享、团队协作、求职展示。
GitLab 提供极其强大的 DevOps 全流程工具链,支持免费私有库,可自托管。 企业私有项目、需要完整CI/CD、DevOps流程的团队。
Bitbucket 由 Atlassian 开发,与 Jira、Trello 等项目管理工具无缝集成。 已在使用 Jira 进行项目管理的团队。
Gitee(码云) 国内领先的平台,访问速度快,符合本地化需求。 国内开发者、需要快速访问的团队、国内开源项目。
Azure DevOps 微软旗下,提供从代码到部署的全套企业级服务。 微软技术栈团队、企业级私有化部署。

核心概念区分:

  • 本地仓库:在你电脑上的 .git文件夹,管理你的本地版本历史。
  • 远程仓库:上述平台提供的在线服务器仓库,用于备份、共享和协作。

国内网络环境下,优先考虑 Gitee,速度有保障。同时关注GitHub,其社区最为活跃。

2.4 Gitee注册与简介

1)注册 Gitee 账号

  1. 访问官网:在浏览器中打开 https://gitee.com
  2. 点击注册:点击页面右上角的 “注册” 按钮。
  3. 填写信息:支持使用手机号邮箱注册,设置用户名(建议英文+数字)和密码。
  4. 完成验证:根据提示完成短信或邮箱验证。
  5. 登录完善:注册成功后自动登录,可进入个人主页完善信息(如头像、简介,此步可选)。

个人空间地址介绍:

在这里插入图片描述

在代码托管平台(如 Gitee、GitHub)中,个人空间地址 就是你的个人主页的唯一访问网址。它通常用于展示你的公开信息、项目仓库和贡献活动,也是别人访问你主页的直达链接。

地址格式(以主流平台为例)

  • Gitee(码云)https://gitee.com/你的用户名
    • 例如,用户名为 admin,则个人空间地址为:https://gitee.com/admin
  • GitHubhttps://github.com/你的用户名
    • 例如,用户名为 admin,则个人空间地址为:https://github.com/admin

当你设置好个人空间地址之后,别人就可以通过该地址如https://gitee.com/admin或者https://github.com/admin来访问你的个人空间。后续你的仓库分享给他人时也是使用该地址加仓库名称进行分享,所以最好选择一个自己喜欢的名称,并后续不要随便更改该名称,以免访问地址出错。

3、Git语法简介与核心区域概念

这一节可以快速看一下,主要是了解git的语法怎么写,大致有哪些操作即可。

3.1 Git语法格式

(1)Git 基本语法结构:

git [全局选项] <子命令> [子命令选项] [参数]
  • git: 所有命令的入口。
  • [全局选项]: 在子命令之前指定的选项,用于控制 Git 工具本身的一些行为,适用于所有子命令。在日常使用中,全局选项一般不写,因为我们通常的习惯是进入项目目录后再执行 Git 命令。
  • <子命令>: 要执行的具体操作,如 commit, push, branch等。
  • [子命令选项]: 跟在子命令后的选项,只对这个特定的子命令生效。例如 git commit -m “msg”中的 -m
  • [参数]: 命令操作的对象,如文件名、分支名、提交哈希等。

在这里列出一些主要的全局选项来进行介绍一下,可以不用记忆,在有需求时查询即可:

  • -v, --version:显示版本信息
  • -h, --help:显示帮助信息
  • -C <path>:指定工作目录
  • -c <name>=<value>:临时设置配置项
  • --exec-path[=<path>]:指定核心程序路径
  • --html-path:显示HTML文档路径
  • --man-path:显示man手册路径
  • --info-path:显示info文档路径
  • -p, --paginate:分页显示输出
  • --no-pager:不使用分页器
  • --git-dir=<path>:指定.git目录路径
  • --work-tree=<path>:指定工作树路径
  • --namespace=<name>:设置Git命名空间
  • --super-prefix=<path>:设置上级路径前缀
  • --bare:将仓库视为裸仓库
  • --literal-pathspecs:字面处理路径规范
  • --glob-pathspecs:使用glob模式处理路径规范
  • --noglob-pathspecs:禁用glob模式
  • --icase-pathspecs:路径规范不区分大小写
  • --no-optional-locks:禁用可选锁

3.2 核心区域概念

在深入了解命令前,必须先理解Git的三个核心工作区域,这是所有操作的基础。

三大核心区域

  1. 工作区 (Working Directory):你在电脑里直接看到和编辑的文件夹和文件。
  2. 暂存区 (Staging Area / Index):一个中间缓存区域,用于临时存放你准备提交的更改。
  3. 版本库 (Repository / Git Directory):位于 .git隐藏文件夹中,永久存储所有提交历史、分支、标签等数据的数据库。

命令流通常为:工作区 → 暂存区 (git add) → 版本库 (git commit)

4、命令操作介绍

前面4小节是最常用的命令,需要详细了解。

这一章的主要目的是告诉你Git可以执行哪些操作,怎么执行,前期看一下,留一个印象即可,后续有使用的情况下再来这里查找。

而最常用最基本的几个命令在下一章节实操中会涉及:

  1. 全局设置和初始化一次就可以。

  2. 接下来就是添加文件,提交修改说明,确认仓库和分支,推送4个命令。

  3. 克隆他人代码库直接复制命令粘贴即可。

4.1 仓库相关命令

# 初始化仓库
git init [--bare] [--template=<template_directory>] [<directory>]

# 克隆仓库
git clone [--recursive] [--depth <depth>] [--branch <branch>] <repository> [<directory>]

# 查看仓库状态
git status [--short] [--branch] [--porcelain[=<version>]]

命令详解:

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

    此命令在当前目录创建一个全新的、空的Git版本库(即 .git目录),建立工作区与版本库的联系。

    • 基本语法

      git init [--bare] [--template=<template_directory>] [<directory>]
      
      • 参数与选项解析

        • [<directory>](可选):指定在哪个目录创建新仓库。默认为当前目录。

          git init my-project  # 在`my-project`文件夹中初始化仓库
          
        • --bare:创建一个“裸仓库”。裸仓库没有工作区,其文件夹直接就是 .git的内容,通常用于服务器上的中央仓库,供他人clonepush,但无法在其上直接编辑文件。

          git init --bare my-project.git  # 创建用于共享的裸仓库
          
        • --template=<template_directory>:使用指定目录中的模板文件来初始化 .git目录。模板可以包含钩子脚本、默认排除规则等。

    • 发生了什么:执行后,Git会在指定目录下创建 .git子目录,内含所有必要的仓库元数据(如对象数据库、索引文件、HEAD指针等)。原来的目录变成了Git的工作区。

    • 常用场景:从零开始一个新项目。在日常使用中,我们会在项目根目录下打开命令行终端(如 Git Bash、CMD、PowerShell 或 macOS 的 Terminal)然后输入git init如下所示:

      .../项目根目录> git init
      
  2. git clone- 克隆现有仓库

    此命令用于获取一个现有仓库的完整副本。它是git init(初始化)+ git remote add(添加远程)+ git fetch(获取数据)+ git checkout(检出文件)的组合操作。

    • 基本语法

      git clone [--recursive] [--depth <depth>] [--branch <branch>] <repository> [<directory>]
      
    • 参数与项解析

      • <repository>(必需):要克隆的仓库地址。可以是远程URL(如https://github.com/user/repo.git)或本地路径(如/path/to/repo)。

      • [<directory>](可选):本地目标目录名。默认为远程仓库名。

        git clone https://github.com/user/repo.git my-local-folder
        
      • --branch <branch>-b <branch>:指定要克隆的分支,而不是默认的HEAD(通常是mainmaster)。

        git clone -b develop https://github.com/user/repo.git
        
      • --depth <depth>:创建一个“浅克隆”,只下载最近的<depth>次提交历史。这能显著加快大型仓库的克隆速度,但会丢失完整历史。

        git clone --depth 1 https://github.com/user/repo.git  # 只克隆最近一次提交
        
      • --recursive:如果被克隆的仓库包含子模块,此选项会自动递归地初始化并更新每一个子模块。

        git clone --recursive https://github.com/user/repo-with-submodules.git
        
    • 发生了什么:命令会:

      1. 在本地创建以 <directory>命名的文件夹(工作区)。
      2. 在其中初始化 .git目录(版本库)。
      3. 将远程仓库的所有数据拉取到本地版本库。
      4. 自动创建一个名为 origin的远程跟踪分支指向你克隆的远程仓库。
      5. 根据远程的默认分支,在工作区检出最新的文件快照。
    • 常用场景:获取一个开源项目的代码,或加入一个团队项目。

  3. git status- 查看仓库状态

    这是最常用的命令之一,用于显示工作区暂存区的当前状态。它能回答:“我改了什么?哪些已暂存?哪些未跟踪?”

    • 基本语法

      git status [--short] [--branch] [--porcelain[=<version>]]
      
    • 参数与选项解析

      • (无选项):显示详细状态信息,包括分支名、与上游分支的关系、已暂存/未暂存/未跟踪的文件列表及提示。

        $ git status
        On branch main
        Your branch is up to date with 'origin/main'.
        
        Changes to be committed:  # 已在暂存区的更改(绿色)
          (use "git restore --staged <file>..." to unstage)
            modified:   README.md
        
        Changes not staged for commit:  # 工作区已修改但未暂存的更改(红色)
          (use "git add <file>..." to update what will be committed)
          (use "git restore <file>..." to discard changes in working directory)
            modified:   src/app.js
        
        Untracked files:  # 未跟踪的新文件(红色)
          (use "git add <file>..." to include in what will be committed)
            new-file.txt
        
      • --short-s:以简洁格式显示状态。这是为脚本和快速查看设计的。

        • 第一列是暂存区状态,第二列是工作区状态。
        • M= 修改,A= 添加,D= 删除,R= 重命名,??= 未跟踪。
        $ git status -s
        M  README.md    # 已暂存的修改
         M src/app.js   # 未暂存的修改(注意M前的空格)
        ?? new-file.txt # 未跟踪的文件
        
      • --branch:在详细输出中,显示更多的分支跟踪信息。

      • --porcelain[=<version>]:输出为一种稳定、易于脚本解析的格式。--short格式可能会在Git版本间变化,但 --porcelain的输出格式是承诺稳定的。通常 --porcelain=v2提供最规范的信息。

    • 发生了什么:命令比较了工作区文件暂存区(索引)当前分支的最新提交(HEAD) 三者之间的差异,并将结果以可读的形式呈现出来。

    • 常用场景:在git addgit commit之前,随时查看更改情况。

4.2 配置相关命令

# 设置配置
git config [--global|--system|--local] <key> [<value>]

# 查看配置
git config [--global|--system|--local] --list
git config [--global|--system|--local] <key>

Git 配置有三个作用域,优先级从高到低如下:

  1. 本地(local):只对当前仓库生效(存储在 .git/config
  2. 全局(global):对当前用户所有仓库生效(存储在 ~/.gitconfig
  3. 系统(system):对所有用户生效(存储在 /etc/gitconfig或安装目录)

(1)设置配置

基本语法

git config [--global|--system|--local] <key> [<value>]

参数详解

  1. 作用域选项(三选一,默认是 --local):

    • --local:设置当前仓库的配置(优先级最高)

      git config --local user.email "project@company.com"
      # 存储位置:项目/.git/config
      
    • --global:设置当前用户的全局配置

      git config --global user.name "张三"
      git config --global user.email "zhangsan@email.com"
      # 存储位置:~/.gitconfig (用户主目录)
      
    • --system:设置系统级配置(需要管理员权限)

      sudo git config --system core.autocrlf true
      # 存储位置:/etc/gitconfig (Linux/macOS)
      # 或 Git 安装目录/etc/gitconfig (Windows)
      
  2. 键值对

    • <key>:配置项的名称,使用点号分隔的层级结构

      # 常用配置项示例
      user.name              # 用户名
      user.email             # 邮箱
      core.editor            # 默认编辑器
      core.autocrlf          # 换行符处理
      alias.st               # 别名设置
      http.proxy             # 代理设置
      
    • <value>:配置项的值(可选)

      • 如果不提供值,Git 会删除该配置项
      • 如果提供值,Git 会设置或更新该配置项

使用示例:

# 1. 设置全局用户名和邮箱(最常用)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 2. 设置默认编辑器为 VS Code
git config --global core.editor "code --wait"

# 3. 设置换行符处理(Windows推荐)
git config --global core.autocrlf true

# 4. 创建命令别名,一般不使用
git config --global alias.st "status"
# 作用: 为你电脑上所有的 Git 项目设置一个全局别名。
# 效果: 以后你只需要输入 git st,就等同于输入了完整的 git status命令
git config --global alias.br "branch"
# 输入 git br等同于 git branch
git config --global alias.ci "commit"
git config --global alias.co "checkout"

# 5. 删除配置项
git config --global --unset user.name  # 删除全局用户名
git config --global --unset-all user.email  # 删除所有匹配项

(2)查看配置

  1. 查看所有配置

    # 查看所有配置(混合显示三级配置)
    git config --list
    
    # 查看特定作用域的配置
    git config --local --list     # 只看当前仓库配置
    git config --global --list    # 只看全局配置
    git config --system --list    # 只看系统配置
    

    示例输出

    $ git config --global --list
    user.name=张三
    user.email=zhangsan@example.com
    core.editor=code --wait
    alias.st=status
    http.proxy=http://proxy.example.com:8080
    
  2. 查看单个配置项

    # 查看特定配置的值
    git config [--global|--system|--local] <key>
    
    # 示例
    git config user.name           # 查看当前仓库的用户名
    git config --global user.name  # 查看全局用户名
    git config core.editor         # 查看编辑器设置
    

    示例输出

    $ git config user.email
    zhangsan@example.com
    

4.3 文件操作命令

# 添加文件到暂存区
git add [--verbose] [--dry-run] [--force] [--interactive] [--patch] <pathspec>...

# 提交更改
git commit [--message <msg>] [--all] [--patch] [--amend] [--no-edit]

# 删除文件
git rm [--cached] [--force] [-r] <file>...

# 移动/重命名文件
git mv [--force] <source> <destination>

(1)git add- 添加文件到暂存区

作用:将工作区的修改(新增、修改、删除的文件)添加到暂存区,准备下一次提交。

基本语法

git add [选项] <路径>...

常用参数详解

  1. 指定文件/目录

    # 添加单个文件
    git add README.md
    
    # 添加多个文件
    git add file1.txt file2.js file3.css
    
    # 添加整个目录
    git add src/
    
    # 添加当前目录所有修改(最常用)
    git add .
    # 或
    git add --all
    # 或
    git add -A
    
  2. 选项详解

    # 显示详细输出(添加了哪些文件)
    git add --verbose
    # 或
    git add -v
    
    # 模拟运行(显示会添加什么,但不实际执行)
    git add --dry-run
    # 或
    git add -n
    
    # 强制添加被忽略的文件
    git add --force
    # 或
    git add -f
    
    # 交互式添加(逐文件选择)
    git add --interactive
    # 或
    git add -i
    
    # 补丁模式(逐块选择修改)
    git add --patch
    # 或
    git add -p
    

    特殊用法示例

    1. 交互式添加 (-i)

      # 进入交互模式
      git add -i
      
      # 交互模式选项:
      #   y - 添加此文件
      #   n - 不添加此文件
      #   a - 添加此文件和所有后续文件
      #   d - 不添加此文件也不添加后续文件
      #   / - 搜索文件
      #   ? - 显示帮助
      
    2. 补丁模式 (-p)

      # 交互式选择每个文件的修改块
      git add -p
      
      # 补丁模式选项:
      #   y - 暂存此块
      #   n - 不暂存此块
      #   q - 退出
      #   a - 暂存此块和此文件所有剩余块
      #   d - 不暂存此块和此文件所有剩余块
      #   s - 分割当前块为更小的块
      #   e - 手动编辑当前块
      #   ? - 显示帮助
      
    3. 高级模式

      # 只添加已跟踪文件的修改(不包括新文件)
      git add -u
      # 或
      git add --update
      
      # 添加所有文件(包括被忽略的)
      git add --all
      git add -A
      
      # 区别总结:
      # git add .        # 添加当前目录及子目录的所有修改
      # git add -A       # 添加整个工作区的所有修改
      # git add -u       # 只添加已跟踪文件的修改
      

示例流程

# 查看当前状态
git status

# 添加所有修改
git add .

# 查看暂存状态
git status
git diff --cached  # 查看暂存区与最新提交的差异

# 如果误添加,可以撤销
git reset HEAD <file>  # 从暂存区移除

# 添加特定类型的文件
git add *.js          # 所有js文件
git add src/*.ts      # src目录下的ts文件
git add "*.txt"       # 所有txt文件

(2)git commit- 提交更改

作用:将暂存区的更改永久保存到版本库,创建一个新的提交记录。

基本语法

git commit [选项]

常用参数详解

  1. 提交信息

    # 直接通过命令行指定提交信息
    git commit -m "修复登录功能bug"
    
    # 多行提交信息
    git commit -m "标题" -m "详细描述" -m "1. 修复了xxx" -m "2. 优化了yyy"
    
    # 打开编辑器输入提交信息(默认行为)
    git commit
    
  2. 常用选项

    # 直接通过命令行指定提交信息
    git commit -m "修复登录功能bug"
    
    # 多行提交信息
    git commit -m "标题" -m "详细描述" -m "1. 修复了xxx" -m "2. 优化了yyy"
    
    # 打开编辑器输入提交信息(默认行为)
    git commit
    

提交工作流示例

  1. 标准提交流程

    # 1. 查看修改
    git status
    
    # 2. 添加到暂存区
    git add .
    
    # 3. 查看暂存内容
    git diff --cached
    
    # 4. 提交
    git commit -m "功能:实现用户登录功能"
    
    # 5. 查看提交记录
    git log --oneline -5
    
  2. 修改上一次提交

    # 场景:忘记添加某个文件到上次提交
    git add forgotten_file.js
    git commit --amend -m "功能:实现用户登录功能(包含忘记的文件)"
    
  3. 跳过暂存直接提交

    # 只提交已跟踪文件的修改
    git commit -a -m "修复:紧急bug修复"
    
    # 等同于:
    git add -u
    git commit -m "修复:紧急bug修复"
    
  4. 交互式提交

    # 逐块选择要提交的修改
    git add -p
    git commit -m "部分修改提交"
    
    # 或者直接
    git commit -p -m "通过补丁模式提交"
    

提交信息规范(推荐)

类型(范围): 简要描述

详细描述(可选)

相关链接(可选)

示例:
feat(auth): 添加用户登录功能

- 实现邮箱密码登录
- 添加JWT令牌验证
- 完善错误处理机制

Closes #123

常用类型

  • feat:新功能
  • fix:bug修复
  • docs:文档更新
  • style:代码格式
  • refactor:重构
  • test:测试相关
  • chore:构建/工具

(3)git rm- 删除文件

作用:从工作区和Git索引中删除文件,并记录这次删除。

基本语法

git rm [选项] <文件>...

选项详解

# 从工作区和暂存区都删除文件
git rm file.txt

# 只从暂存区删除,保留工作区文件(取消跟踪)
git rm --cached file.txt
# 或
git rm -cached file.txt

# 强制删除(即使文件有未提交的修改)
git rm --force file.txt
# 或
git rm -f file.txt

# 递归删除目录
git rm -r directory/

使用场景示例

  1. 删除文件

    # 查看状态
    git status
    
    # 删除文件(从工作区和暂存区)
    git rm old_file.txt
    
    # 提交删除
    git commit -m "删除:移除旧文件old_file.txt"
    
  2. 从版本控制移除但保留本地文件

    # 从Git中移除,但保留在本地(常用于.gitignore忘记添加)
    git rm --cached config.ini
    # 然后将config.ini添加到.gitignore
    echo "config.ini" >> .gitignore
    git add .gitignore
    git commit -m "忽略:从版本控制移除配置文件"
    
  3. 批量删除

    # 删除所有txt文件
    git rm *.txt
    
    # 删除目录
    git rm -r temp/
    
    # 删除所有被修改的文件(危险!)
    git rm -f $(git ls-files -m)
    
  4. 错误删除的恢复

    # 如果误删,但还未提交
    git checkout -- deleted_file.txt
    
    # 如果已提交删除,想恢复
    git checkout HEAD^ -- deleted_file.txt
    # 或
    git restore deleted_file.txt
    

(4)git mv- 移动/重命名文件

作用:移动或重命名文件,Git会自动识别这是重命名操作。

基本语法

git mv <源文件> <目标文件>
git mv <源文件> <目标目录>/

选项详解

# 强制移动/重命名(即使目标存在)
git mv --force old.txt new.txt
# 或
git mv -f old.txt new.txt

使用示例

  1. 重命名文件

    # Git会自动识别这是重命名,不是删除+添加
    git mv oldname.txt newname.txt
    
    # 查看状态
    git status
    # 输出:renamed: oldname.txt -> newname.txt
    
  2. 移动文件

    # 移动到子目录
    git mv file.txt src/file.txt
    
    # 移动到上级目录
    git mv src/file.txt ../file.txt
    
    # 移动并重命名
    git mv app.js src/index.js
    
  3. 批量移动

    # 移动多个文件到目录
    git mv file1.txt file2.txt docs/
    
    # 通配符移动
    git mv *.js src/
    

注意事项

# git mv 实际等同于以下三个命令:
mv old.txt new.txt
git rm old.txt
git add new.txt

# 所以手动重命名也能被Git识别
mv old.txt new.txt
git rm old.txt
git add new.txt
# 效果与 git mv old.txt new.txt 相同

4.4 分支管理命令

# 创建分支
git branch [--list] [--all] [--remotes] [<branch>] [<start-point>]

# 切换分支
git checkout [-b] <branch> [<start-point>]

# 切换分支(新版本)
git switch [-c] <branch>

# 合并分支
git merge [--no-ff] [--squash] [--commit] <branch>

# 变基
git rebase [--interactive] [--onto <newbase>] [<upstream>] [<branch>]

# 删除分支
git branch -d|-D <branch>

什么是分支:

  • 分支是独立开发线,让你能同时开发多个功能
  • 主分支通常叫 mainmaster,保存稳定代码
  • 功能分支用于开发新功能,不影响主分支
  1. 查看分支
git branch           # 查看本地分支(*表示当前分支)
git branch -a        # 查看所有分支(包括远程)
git branch -r        # 只查看远程分支

示例输出

* main              # 当前在main分支
  feature-login     # 本地功能分支
  remotes/origin/main  # 远程分支
  1. 创建分支
# 创建新分支(不切换)
git branch 分支名

# 创建基于某次提交的分支
git branch 分支名 提交号

# 示例
git branch feature-payment
git branch hotfix-bug 5f2a1c3
  1. 切换分支
# 方法1:传统方式
git checkout 分支名

# 创建并切换(最常用)
git checkout -b 新分支名

# 方法2:新命令(Git 2.23+)
git switch 分支名
git switch -c 新分支名

示例

# 创建并切换到新功能分支
git checkout -b feature/user-profile
# 或
git switch -c feature/user-profile
  1. 合并分支
# 把feature分支合并到当前分支
git merge feature-name

# 强制创建合并提交(即使能快进)
git merge --no-ff feature-name

# 合并但不自动提交
git merge --no-commit feature-name

标准合并流程

# 1. 切换到主分支
git switch main

# 2. 确保是最新代码
git pull origin main

# 3. 合并功能分支
git merge feature-login

# 4. 推送
git push origin main
  1. 删除分支
# 安全删除(已合并的分支)
git branch -d 分支名

# 强制删除(未合并的分支)
git branch -D 分支名

# 删除远程分支
git push origin --delete 分支名

示例

git branch -d feature-login  # 删除已合并的功能分支
git push origin --delete old-branch  # 删除远程分支

从这里开始后面的命令就很少使用了,大致看一下,知道git命令都有什么作用即可。

4.5 查看历史命令

# 查看提交历史
git log [--oneline] [--graph] [--all] [--decorate] [<path>...]

# 显示提交详情
git show [<object>]

# 比较差异
git diff [<commit>] [<commit>] [-- <path>...]
git diff --cached [<commit>] [-- <path>...]

4.6 远程操作命令

# 添加远程仓库
git remote add [-t <branch>] [-m <master>] <name> <url>

# 获取远程更新
git fetch [<remote>] [<branch>]

# 拉取并合并
git pull [<remote>] [<branch>] [--rebase]

# 推送到远程
git push [<remote>] [<branch>] [--force] [--tags] [--delete]

4.7 标签管理命令

# 创建标签
git tag [-a] [-m <msg>] <tagname> [<commit>]

# 列出标签
git tag [-l] [<pattern>]

# 推送标签
git push [<remote>] [--tags] [--delete] <tagname>

4.8 撤销操作命令

# 重置暂存区
git reset [--mixed|--soft|--hard] [<commit>] [-- <path>...]

# 恢复文件
git restore [--staged] [--source=<tree>] [--worktree] <pathspec>...

# 撤销提交
git revert [--no-commit] <commit>...

4.9 高级命令用法

  1. 储藏(Stash)
# 储藏修改
git stash [push] [-m <message>] [-- <pathspec>...]

# 应用储藏
git stash apply [<stash>]

# 弹出储藏
git stash pop [<stash>]

# 列出储藏
git stash list
  1. 子模块(Submodule)
# 添加子模块
git submodule add [<options>] <repository> [<path>]

# 初始化子模块
git submodule init [<path>...]

# 更新子模块
git submodule update [--init] [--remote] [--recursive]
  1. 二分查找(Bisect)
git bisect start
git bisect good <commit>
git bisect bad <commit>
git bisect reset

暂时而言了解这些就已经足够了,更多详细的命令操作可以参考官方文档。

5、创建仓库与上传代码

5.1 创建远程仓库

这里以Gitee为例:

1)登录Gitee

  • 访问 gitee.com
  • 注册/登录账号

2)创建新仓库

  1. 点击右上角 "+" 图标

  2. 选择 "新建仓库"

    在这里插入图片描述

  3. 填写仓库信息:

    仓库名称:my-project(英文,不要中文)
    路径:my-project(自动生成)
    仓库介绍:我的第一个Git项目(可选)
    是否开源:公开(推荐)或私有
    - 公开:所有人可见
    - 私有:仅自己可见
    初始化仓库:
    ☐ 初始化仓库(README)→ 不要勾选!
    ☐ 设置模板(添加 Readme、Issue、Pull Request 模板文件)→ 可选,这里不选择
    ☐ 选择分支模型 → 个人小项目选“单分支模型”
    

    重要提示不要勾选"初始化仓库",否则会创建一个有初始提交的空仓库,导致后续推送冲突。

    在这里插入图片描述

    填写好之后直接点创建,然后就有如下界面:

    在这里插入图片描述
    这个记好,后面要考!!!

  4. 获取仓库地址

    创建成功后,你会看到:

    • HTTPS地址https://gitee.com/你的用户名/my-project.git
    • SSH地址git@gitee.com:你的用户名/my-project.git

    建议使用SSH,配置一次就不用每次输密码了。

5.2 配置全局用户信息

# 设置用户名(会显示在提交记录中)
git config --global user.name "你的真实姓名"

# 设置邮箱(必须与Gitee/GitHub注册邮箱一致)
git config --global user.email "你的邮箱@example.com"

# 检查配置
git config --global --list
# 或查看特定配置
git config --global user.name
git config --global user.email

为什么必须配置

  • 每次提交都会记录作者信息
  • 远程仓库(Gitee/GitHub)用邮箱识别用户
  • 不配置会导致无法提交,或提交显示"Unknown"

其实这一步应该放在最先配置,但是我放在了创建仓库之后,因为创建仓库后,在初始界面会有Git全局设置的命令,直接复制以免出错。

在这里插入图片描述

5.3 配置SSH密钥

公钥/私钥对是设备的“身份证”:当您在本地电脑上生成一对 SSH 密钥(id_rsaid_rsa.pubid_ed25519id_ed25519.pub)时,这对密钥就成为了您这台电脑访问远程 Git 服务(如 Gitee、GitHub)的一个专用身份凭证。私钥保存在您自己电脑上,绝对保密;公钥则可以交给任何您需要访问的服务。

其中id_rsa这类无拓展名的就是私钥,带 .pub扩展名就是公钥。

一般来说:一个公钥对应一台电脑(一个用户身份),用同一对密钥可以管理您账户下所有的仓库,这避免了为每个项目管理不同密钥的麻烦。

  1. 检查现有SSH密钥

    # 查看是否已有密钥
    ls -al ~/.ssh
    # 如果看到 id_rsa 和 id_rsa.pub 文件,说明已有
    # rsa是一种广泛使用的非对称加密算法
    

    运行位置:

    1. 如果你用的是 Windows 系统:推荐在 Git Bash 中运行。

      • 如果你安装了 Git for Windows,在开始菜单或桌面上找到 “Git Bash” 并打开,它会提供一个类似 Linux 的终端环境。或者在桌面右键->点击最底部显示更多选项->open git bash here。
    2. 如果你用的是 macOS 系统

      • 打开“终端”(Terminal)应用程序。

        • 可以通过 Spotlight 搜索(按 Command + 空格键,输入“终端”)或它在“应用程序” -> “实用工具”文件夹里找到。
      • 如果你用的是 Linux 系统

        • 打开系统自带的“终端”(Terminal)应用程序(通常在应用程序菜单中)。
  2. 生成新的SSH密钥

    # 生成密钥对(使用Gitee注册邮箱)
    ssh-keygen -t rsa -C "your_email@gitee.com"
    # 提示保存位置:直接回车(使用默认位置)
    # 提示输入密码:可直接回车(不设置密码)
    # 再次确认密码:直接回车
    

    成功提示

    Your identification has been saved in /Users/用户名/.ssh/id_rsa
    Your public key has been saved in /Users/用户名/.ssh/id_rsa.pub
    
  3. 查看并复制公钥

    # 显示公钥内容
    cat ~/.ssh/id_rsa.pub
    # 复制显示的全部内容,从 ssh-rsa 开始到邮箱结束
    # 名称不一定是id_rsa.pub,看你使用是什么算法,如果之前生成的是 ed25519算法,则使用:
    cat ~/.ssh/id_ed25519.pub
    

    公钥文件的特点是带有 .pub扩展名,而不带 .pub的对应同名文件是您的私钥,绝不能泄露(例如 id_rsa)。

  4. 在Gitee添加SSH公钥

    1. 进入Gitee → 右上角头像 → "设置"
    2. 左侧菜单 → "安全设置""SSH公钥"

    在这里插入图片描述

    1. 填写:
      • 标题:My Computer(任意,方便识别)
      • 公钥:粘贴刚才复制的公钥内容
    2. 点击 "确定"
  5. 测试SSH连接

    ssh -T git@gitee.com
    

    成功提示

    Hi 你的用户名! You've successfully authenticated...
    

    在这里插入图片描述

5.4 本地项目推送

这里的步骤可以直接在CMD中运行,完整操作流程

(1)场景1:从头开始新项目

同样的,适应自己项目和账号的命令在初始界面有:

在这里插入图片描述

# 步骤1:创建项目文件夹
mkdir my-project
cd my-project

# 步骤2:初始化Git仓库
git init
# 输出:Initialized empty Git repository in ...

# 步骤3:创建项目文件
echo "# 我的项目" > README.md
echo "console.log('Hello Git')" > index.js
echo "node_modules/" > .gitignore
# 也可以直接用图形化界面操作新建项目

# 步骤4:首次提交
git add .
git status  # 检查状态
git commit -m "init: 项目初始化"

# 步骤5:连接远程仓库
git remote add origin git@gitee.com:你的用户名/my-project.git
# 或使用HTTPS
# git remote add origin https://gitee.com/你的用户名/my-project.git

# 步骤6:推送代码
git push -u origin main
# 如果失败,可能是分支名问题
git branch -M main  # 重命名分支为main
git push -u origin main

(2)场景2:已有项目上传

# 进入已有项目目录
cd existing-project

# 如果项目还未初始化Git
git init

# 添加所有文件
git add .

# 首次提交
git commit -m "init: 导入现有项目"

# 连接Gitee仓库
git remote add origin git@gitee.com:用户名/仓库名.git

# 推送
git push -u origin main
# 如果推送失败,先拉取(通常不需要,因为是新仓库)
# git pull origin main --allow-unrelated-histories

(3)场景3:克隆现有仓库

# 从Gitee克隆到本地
git clone git@gitee.com:用户名/仓库名.git

# 或指定文件夹名
git clone git@gitee.com:用户名/仓库名.git 本地文件夹名

# 进入项目
cd 仓库名

# 正常开发...
git add .
git commit -m "修改说明"
git push

补充一点,一般项目目录下会放一个README.md文件用于说明该项目的基本信息。

这个README.md文件可以被直接读取展示。

o-1773921390677)]

  1. 填写:

    • 标题:My Computer(任意,方便识别)
    • 公钥:粘贴刚才复制的公钥内容
  2. 点击 "确定"

  3. 测试SSH连接

    ssh -T git@gitee.com
    

    成功提示

    Hi 你的用户名! You've successfully authenticated...
    

    [外链图片转存中...(img-7RbLTcfB-1773921390677)]

5.4 本地项目推送

这里的步骤可以直接在CMD中运行,完整操作流程

(1)场景1:从头开始新项目

同样的,适应自己项目和账号的命令在初始界面有:

[外链图片转存中...(img-RjLIphjf-1773921390677)]

# 步骤1:创建项目文件夹
mkdir my-project
cd my-project

# 步骤2:初始化Git仓库
git init
# 输出:Initialized empty Git repository in ...

# 步骤3:创建项目文件
echo "# 我的项目" > README.md
echo "console.log('Hello Git')" > index.js
echo "node_modules/" > .gitignore
# 也可以直接用图形化界面操作新建项目

# 步骤4:首次提交
git add .
git status  # 检查状态
git commit -m "init: 项目初始化"

# 步骤5:连接远程仓库
git remote add origin git@gitee.com:你的用户名/my-project.git
# 或使用HTTPS
# git remote add origin https://gitee.com/你的用户名/my-project.git

# 步骤6:推送代码
git push -u origin main
# 如果失败,可能是分支名问题
git branch -M main  # 重命名分支为main
git push -u origin main

(2)场景2:已有项目上传

# 进入已有项目目录
cd existing-project

# 如果项目还未初始化Git
git init

# 添加所有文件
git add .

# 首次提交
git commit -m "init: 导入现有项目"

# 连接Gitee仓库
git remote add origin git@gitee.com:用户名/仓库名.git

# 推送
git push -u origin main
# 如果推送失败,先拉取(通常不需要,因为是新仓库)
# git pull origin main --allow-unrelated-histories

(3)场景3:克隆现有仓库

# 从Gitee克隆到本地
git clone git@gitee.com:用户名/仓库名.git

# 或指定文件夹名
git clone git@gitee.com:用户名/仓库名.git 本地文件夹名

# 进入项目
cd 仓库名

# 正常开发...
git add .
git commit -m "修改说明"
git push

补充一点,一般项目目录下会放一个README.md文件用于说明该项目的基本信息。

这个README.md文件可以被直接读取展示。

posted @ 2026-03-19 20:12  SouthRosefinch  阅读(4)  评论(0)    收藏  举报