Git 的安装与基本配置

一、Git 是什么

Git 是一个开源的分布式版本控制系统,最初由 Linus Torvalds 在 2005 年为了帮助管理 Linux 内核开发而创建。与传统的集中式版本控制系统(如 SVN)不同,Git 采用分布式架构,每个开发者的本地机器上都拥有完整的代码仓库副本,这使得开发者在离线状态下也能进行完整的版本控制操作,极大地提高了开发的灵活性和效率。

在软件开发过程中,版本控制至关重要。想象一下,你和团队成员共同开发一个项目,随着时间推移,代码不断被修改和完善。如果没有版本控制,一旦出现问题,很难追溯到之前的正确代码状态,也难以协调多人之间的代码修改。而 Git 的出现,完美地解决了这些问题。它可以精确记录每一次代码的变更,包括谁在什么时间做了什么修改,并且支持创建多个分支,让开发者可以在不同分支上并行开发新功能、修复漏洞,最后再将这些分支合并到主分支,确保项目的有序推进。无论是小型个人项目,还是大型企业级项目,Git 都已成为不可或缺的开发工具,是现代软件开发流程中至关重要的一环。

二、为什么要安装 Git

在软件开发和项目管理过程中,Git 的重要性不言而喻,主要体现在以下几个方面:

  • 高效的版本管理:在项目开发中,代码会不断被修改和完善,Git 能够精确记录每一次代码的变更,包括修改的内容、作者、时间等信息。当出现问题时,开发者可以轻松地将代码回滚到之前的任意一个正确状态,确保项目的稳定性和可维护性。例如,在一个大型网站开发项目中,经过多次迭代后,突然发现某个功能出现异常,通过 Git 的版本回溯功能,开发者迅速定位到之前某次代码修改导致的问题,并将代码回滚到正常状态,避免了大规模的代码排查工作。
  • 强大的团队协作:现代软件开发往往是多人协作的过程,Git 的分布式特性使得每个团队成员都拥有完整的代码仓库副本,开发者可以在自己的本地环境中独立进行开发、测试和调试,而不会影响到其他成员。同时,通过分支管理,团队成员可以并行开发不同的功能或修复不同的问题,最后再将各自的分支合并到主分支上。以一个电商项目开发为例,团队中的不同成员分别负责前端页面开发、后端接口实现、数据库设计等功能模块,通过 Git 的分支管理,各成员可以在自己的分支上独立开发,完成后再合并到主分支,大大提高了开发效率。
  • 灵活的工作流程:Git 支持多种工作流程,如集中式、分叉式、拉取请求等,团队可以根据项目的特点和需求选择合适的工作流程。在开源项目中,通常采用分叉式工作流程,开发者可以从主仓库中 fork 出自己的仓库,在自己的仓库中进行开发和修改,然后通过提交拉取请求(Pull Request)的方式将自己的代码合并到主仓库中,这种方式既保证了主仓库的稳定性,又鼓励了全球开发者的参与和贡献。
  • 离线开发支持:由于 Git 采用分布式架构,开发者在没有网络连接的情况下,依然可以在本地进行完整的版本控制操作,如提交代码、创建分支、合并分支等。待网络恢复后,再将本地的变更同步到远程仓库。这对于经常需要在不同环境下工作的开发者来说,提供了极大的便利。例如,在出差途中,开发者可以在飞机上对代码进行修改和提交,等到达目的地后再将代码同步到远程仓库。

三、Git 安装步骤

(一)下载 Git

你可以从 Git 官方网站(https://git-scm.com/downloads)下载 Git 安装程序。打开官网后,网站会根据你的操作系统自动推荐适合的下载版本,你也可以手动选择对应操作系统的版本进行下载。比如,如果你使用的是 Windows 系统,就点击 "Download for Windows";如果是 macOS 系统,点击 "Download for macOS" 。注意,下载时要确保你的网络连接稳定,以保证下载过程顺利完成。

(二)开始安装

  1. 许可协议:下载完成后,双击安装程序开始安装。首先会出现许可协议界面,仔细阅读协议内容后,点击 "Next" 表示同意协议,才能继续后续的安装步骤。这一步是所有软件安装过程中常见的确认环节,只有同意协议,才能使用该软件。
  1. 安装路径:接下来是选择安装路径。默认情况下,Git 会安装到 "C:\Program Files\Git" 目录。如果你的 C 盘空间充足,建议使用默认路径,这样可以避免一些潜在的路径相关问题。当然,如果你想安装到其他磁盘分区,点击 "Browse..." 按钮,选择你希望的安装目录,然后点击 "Next"。但要注意,安装路径中不要包含中文或特殊字符,以免在后续使用过程中出现兼容性问题。
  1. 安装组件:在这一步,你可以选择需要安装的组件。
    • Additional icons:勾选此项会在桌面上创建 Git Bash 和 Git GUI 的快捷方式,方便你快速启动这两个工具,推荐勾选。
    • Windows Explorer integration:包含 "Git Bash Here" 和 "Git GUI Here" 两个选项,勾选后会在 Windows 资源管理器的右键菜单中添加相应选项,让你可以在任意文件夹中快速打开 Git Bash 或 Git GUI,根据个人习惯选择,建议勾选。
    • Git LFS (Large File Support):如果你需要处理大型文件(如图像、视频等),建议勾选,它能帮助你更好地管理这些大文件。
    • Associate.git configuration files with the default text editor*:勾选后会将.git 配置文件与默认文本编辑器关联,方便你直接编辑这些文件,推荐勾选。
    • Use a TrueType font in all console windows:勾选后会在所有控制台窗口中使用 TrueType 字体,提升显示效果,可根据个人喜好选择。
    • Check daily for Git for Windows updates:勾选后会每天自动检查 Git for Windows 的更新,如果你希望保持软件为最新版本,可以勾选,但这可能会在一定程度上消耗系统资源。
    • Add a Git Bash Profile to windows Terminal:勾选后会将 Git Bash 配置文件添加到 Windows Terminal 中,方便从终端快速启动 Git Bash,推荐勾选。
    • Scalar (Git add-on to manage large-scale repositories):如果你需要管理大规模仓库,可以勾选此选项,否则保持默认即可。

选择好组件后,点击 "Next" 继续。

  1. 开始菜单文件夹:这一步是选择开始菜单中 Git 程序快捷方式的文件夹名称,默认即可,无需修改,直接点击 "Next"。
  1. 默认编辑器:Git 安装程序提供了多种默认编辑器供你选择,默认是 Vim。Vim 是一个功能强大的文本编辑器,在 Linux 和 Unix 系统中广泛使用,如果你对 Vim 比较熟悉,可以继续使用默认设置。如果你更习惯使用其他编辑器,如 Notepad++、Visual Studio Code 等,也可以从下拉菜单中选择相应的编辑器。如果你选择的编辑器尚未安装,点击对应的蓝色链接可以先进行安装。选择好编辑器后,点击 "Next"。
  1. 初始化主干名字:这里有两个选项,"Let Git decide" 表示让 Git 自己选择,默认名字是 master,但未来可能会改为其他名字;"Override the default branch name for new repositories" 表示可以自定义名字,默认是 main。对于大多数情况,使用默认选项即可,直接点击 "Next"。
  1. Path 环境变量设置:这一步有三个选项:
    • Use Git from Git Bash only:这是最安全的选择,因为你的 PATH 环境变量根本不会被修改,你只能使用 Git Bash 中的 Git 命令行工具,无法通过第三方软件调用 Git。
    • Use Git from the Windows Command Prompt:该选项被认为是安全的,它仅向 PATH 添加一些最小的 Git 包装器,以避免使用可选的 Unix 工具造成环境混乱。选择此选项后,你将能够从 Git Bash、命令提示符和 Windows PowerShell 以及在 PATH 中寻找 Git 的任何第三方软件中使用 Git,这也是推荐的选项。
    • Use Git and optional Unix tools from the Windows Command Prompt:选择此选项,Git 和可选的 Unix 工具都会被添加到 PATH 中,但这会覆盖 Windows 工具,如 "find" 和 "sort",只有在你了解其含义并确实有相关需求时才使用此选项。

根据个人需求选择相应选项后,点击 "Next"。

  1. SSH 可执行文件:这里有两个选项,"Use bundled OpenSSH" 表示使用 Git 自带的 ssh.exe;"Use external OpenSSH" 表示使用外部的 ssh.exe,Git 不会安装自己的 OpenSSH(和相关)二进制文件,而是使用在环境变量 PATH 中找到的它们。一般情况下,使用默认的 "Use bundled OpenSSH" 即可,点击 "Next"。
  1. HTTPS 后端传输:第一个选项 "Use the OpenSSL library" 是使用 OpenSSL 库,服务器证书将使用 ca-bundle.crt 文件进行验证,这是常用的选项;第二个选项 "Use the native Windows Secure Channel library" 是使用本地 Windows 安全通道库,服务器证书将使用 Windows 证书存储验证,此选项还允许你使用公司的内部根 CA 证书,例如通过 Active Directory Domain Services 。如果只是使用 Git 来访问 Github、Gitlab 等常见网站,使用默认的 "Use the OpenSSL library" 即可,点击 "Next"。
  1. 行尾符号转换
    • Checkout Windows-style, commit Unix-style line endings:签出文本文件时,Git 会将 LF(换行符,常用于 Unix 和 Linux 系统)转换为 CRLF(回车符 + 换行符,常用于 Windows 系统);提交文本文件时,CRLF 将转换为 LF。对于跨平台项目,这是 Windows 上的推荐设置("core.autocrlf" 设置为 "true")。
    • Checkout as-is, commit Unix-style line endings:签出文本文件时,Git 不会执行任何转换;提交文本文件时,CRLF 将转换为 LF。对于跨平台项目,这是 Unix 上的建议设置("core.autocrlf" 设置为 "input")。
    • Checkout as-is, commit as-is:当签出或提交文本文件时,Git 不会执行任何转换。不建议跨平台项目选择此选项("core.autocrlf" 设置为 "false")。

一般情况下,在 Windows 系统上使用默认的 "Checkout Windows-style, commit Unix-style line endings" 即可,点击 "Next"。

  1. 终端模拟器
    • Use MinTTY (MSYS2's default terminal):Git Bash 将使用 MinTTY 作为终端模拟器,该模拟器具有可调整大小的窗口、非矩形文本选择和显示 Unicode 字体的功能。但 Windows 控制台程序(例如交互式 Python)必须通过 "winpty" 启动才能在 MinTTY 中运行。
    • Use Windows' default console window:Git 将使用 Windows 的默认控制台窗口("cmd.exe"),该窗口可以与 Win32 控制台程序(如交互式 Python 或 node.js)一起使用,但默认的回滚非常有限,需要配置 Unicode 字体以正确显示非 ASCII 字符,并且在 Windows 10 之前,其窗口不能自由调整大小,并且只允许矩形文本选择。

推荐使用默认的 "Use MinTTY (MSYS2's default terminal)",点击 "Next"。

  1. git pull 行为
    • Default (fast-forward or merge):这是 "git pull" 的标准行为,尽可能将当前分支快速转发到获取的分支,否则创建合并提交。
    • Reset:将当前分支复位到获取的分支上。如果没有要重新设置基础的本地提交,这相当于快进。
    • Fast-forward only:快进到获取的分支。如果不能获取,则失败。

使用默认的 "Default (fast-forward or merge)" 即可,点击 "Next"。

  1. 凭证帮助程序
    • Git Credential Manager:Windows 的 Git 凭证管理器为 Windows 提供安全的 Git 凭证存储,最显著的是对 Visual Studio Team Services 和 GitHub 的多因素身份验证支持(需要.NET Framework v4.5.1 或更高版本)。
    • None, do not use a credential helper:不使用凭证管理器。

一般使用默认的 "Git Credential Manager",点击 "Next"。

  1. 额外选项
    • Enable file system caching:启用文件系统缓存,文件系统数据将被批量读取并缓存在内存中用于某些操作("core.fscache" 设置为 "true"),这能提供显著的性能提升,建议勾选。
    • Enable symbolic links:启用符号链接(需要 SeCreateSymbolicLink 权限),请注意,现有存储库不受此设置的影响。如果没有特殊需求,保持默认即可。

一般勾选 "Enable file system caching",点击 "Next"。

  1. 实验性选项:这里的选项如 "Enable experimental support for pseudo consoles" 等属于实验性的功能,虽然可能会带来一些新特性,但也可能存在不稳定因素。在不了解其具体功能和影响之前,建议不要勾选,保持默认设置,然后点击 "Install" 开始安装。
  1. 安装完成:安装过程可能需要一些时间,请耐心等待。安装完成后,点击 "Finish" 完成安装。此时,你可以在开始菜单中找到 Git 相关的程序,如 Git Bash(命令行工具)、Git GUI(图形界面工具)等,也可以在桌面上找到之前勾选创建的快捷方式。

(三)检查安装

安装完成后,需要检查 Git 是否安装成功。打开命令行工具(如 Windows 的命令提示符、Git Bash 等),输入以下命令:

复制代码

git --version

如果安装成功,命令行将输出 Git 的版本号,例如 "git version 2.40.1",这表明 Git 已经成功安装在你的系统中,可以开始使用了。

四、Git 基本配置

(一)配置用户名和邮箱

在使用 Git 进行代码提交时,配置用户名和邮箱是非常重要的一步。这是因为每次提交代码时,Git 都会记录提交者的用户名和邮箱信息,这些信息将被包含在提交记录中,方便团队成员追踪和识别代码的来源及贡献者。通过配置用户名和邮箱,不仅能确保提交记录的准确性和可追溯性,还能在团队协作中清晰地展示每个成员的工作。

配置用户名和邮箱的命令如下:

复制代码

git config --global user.name "Your Name"

git config --global user.email "your_email@example.com"

其中,--global参数表示这是一个全局配置,会对当前用户的所有 Git 仓库生效。如果只想对某个特定的仓库进行配置,去掉--global参数即可。将"Your Name"替换为你的真实姓名或常用昵称,"your_email@example.com"替换为你的邮箱地址。

配置完成后,可以通过以下命令查看配置是否成功:

复制代码

git config user.name

git config user.email

命令执行后,会分别显示你设置的用户名和邮箱。

(二)设置换行符处理

不同的操作系统使用不同的换行符来表示文本中的换行。Windows 系统使用回车符(CR,\r)和换行符(LF,\n)组合,即\r\n来表示换行;而 Unix 和 Linux 系统只使用换行符(LF,\n)来表示换行。这种差异在跨平台开发时可能会导致问题,例如在 Windows 系统上编写的代码,在 Linux 系统上查看或运行时,可能会因为换行符的不同而出现格式错误或运行异常。

为了解决这个问题,Git 提供了core.autocrlf配置选项来自动处理换行符的转换。具体配置如下:

  • Windows 系统
复制代码

git config --global core.autocrlf true

这个配置表示在提交代码时,Git 会将 Windows 格式的换行符\r\n转换为 Unix 格式的换行符\n;在检出(拉取)代码时,会将 Unix 格式的换行符\n转换回 Windows 格式的\r\n。这样可以确保在 Windows 系统上开发的代码在 Git 仓库中以统一的 Unix 格式存储,同时在本地编辑时使用 Windows 格式的换行符,保证代码在不同平台间的兼容性。

  • macOS 和 Linux 系统
复制代码

git config --global core.autocrlf input

对于 macOS 和 Linux 系统,由于它们默认使用 Unix 格式的换行符,所以设置core.autocrlf为input。这意味着在提交代码时,Git 会将\r\n转换为\n,而在检出代码时,不会对换行符进行转换,保持\n的格式。这样可以保证在这些系统上开发的代码在 Git 仓库中以及本地都使用统一的 Unix 格式换行符。

  • 不进行换行符转换
复制代码

git config --global core.autocrlf false

如果明确知道所有开发人员都使用相同的操作系统,或者希望完全手动控制换行符的格式,可以将core.autocrlf设置为false,此时 Git 不会对换行符进行任何自动转换,文件在本地和远程仓库中的换行符保持一致。

(三)配置 SSH 免密连接

配置 SSH 免密连接可以让你在与远程 Git 仓库进行交互时,无需每次都输入用户名和密码,提高操作效率。下面以 GitHub 为例,介绍配置 SSH 免密连接的步骤:

  1. 生成 SSH 密钥

打开 Git Bash 或其他终端工具,输入以下命令:

复制代码

ssh-keygen -t rsa -C "your_email@example.com"

参数解释:

  • -t:指定密钥类型,这里使用rsa类型。
  • -C:添加注释,一般使用邮箱地址作为注释,方便识别。

执行命令后,会提示你输入保存密钥的路径和文件名,直接按回车键,使用默认路径和文件名即可(一般是~/.ssh/id_rsa)。接下来会提示你输入密码短语(passphrase),这是为了增加密钥的安全性,如果你希望密钥不需要密码即可使用,可以直接按回车键留空。如果设置了密码短语,在使用密钥时需要输入密码。

完成上述步骤后,会在~/.ssh目录下生成两个文件:id_rsa(私钥,需妥善保管,不能泄露)和id_rsa.pub(公钥,可以公开)。

  1. 添加公钥到远程仓库

以 GitHub 为例,登录到 GitHub 账号,点击右上角的头像,选择 "Settings"。

在左侧菜单中选择 "SSH and GPG keys",然后点击 "New SSH key"。

在弹出的窗口中,将~/.ssh/id_rsa.pub文件中的内容复制到 "Key" 文本框中,"Title" 可以自定义,用于标识这个密钥,例如 "Work Laptop SSH Key",然后点击 "Add SSH key"。

添加完成后,在终端中输入以下命令测试 SSH 连接:

复制代码

ssh -T git@github.com

如果提示 "Hi [your_username]! You've successfully authenticated, but GitHub does not provide shell access.",则表示 SSH 免密连接配置成功。此时,你就可以使用 SSH 协议与 GitHub 仓库进行交互,例如克隆仓库、推送代码等操作时,都无需再输入用户名和密码。

五、常见问题及解决

(一)安装过程报错

  • 权限不足:在安装 Git 时,如果出现权限不足的错误,比如在 Windows 系统中提示无法写入安装目录,或者在 Linux 系统中使用普通用户安装时提示权限不够。在 Windows 系统中,你可以右键点击安装程序,选择 "以管理员身份运行",然后重新进行安装;在 Linux 系统中,使用sudo命令获取管理员权限后再运行安装命令,例如sudo apt install git(适用于 Debian 或 Ubuntu 系统),sudo yum install git(适用于 CentOS 或 RHEL 系统)。
  • 依赖缺失:在 Linux 系统中安装 Git 时,可能会因为缺少依赖库而导致安装失败,比如缺少libcurl、zlib等依赖。以 Ubuntu 系统为例,如果你在安装时遇到依赖缺失的错误,可以先更新软件包列表,使用命令sudo apt update,然后安装依赖库,例如安装libcurl和zlib依赖的命令为sudo apt install libcurl4-gnutls-dev zlib1g-dev,安装完成后再尝试安装 Git。不同的 Linux 发行版,依赖库的名称和安装命令可能会有所不同,你可以根据具体的错误提示和系统类型,在官方文档或社区论坛中查找对应的解决方法。
  • 网络问题:在下载 Git 安装包或安装过程中需要从网络获取依赖时,如果网络连接不稳定或者存在防火墙限制,可能会导致安装失败。你可以先检查网络连接是否正常,尝试使用ping命令测试网络,例如ping www.baidu.com。如果是防火墙限制,可以暂时关闭防火墙或者在防火墙上添加允许 Git 安装程序访问网络的规则。在 Windows 系统中,可以在防火墙设置中找到 Git 安装程序,允许其通过防火墙;在 Linux 系统中,根据使用的防火墙类型(如iptables、firewalld等),添加相应的规则。

(二)配置问题

  • 用户名邮箱格式错误:如果在配置用户名和邮箱时输入了错误的格式,比如用户名中包含特殊字符或者邮箱地址格式不正确,虽然配置命令不会报错,但在提交代码时可能会出现一些问题。在配置用户名时,建议使用真实姓名或常用昵称,避免使用特殊字符;配置邮箱时,仔细检查邮箱地址是否正确,包括@符号和域名后缀等。如果已经配置错误,可以使用以下命令重新配置:
复制代码

git config --global --replace-all user.name "Your Correct Name"

git config --global --replace-all user.email "your_correct_email@example.com"

  • SSH 连接失败:在配置 SSH 免密连接时,可能会遇到连接失败的问题。
    • 主机密钥验证失败:当提示 "Host key verification failed." 时,可能是因为本地的known_hosts文件中保存的远程主机密钥与实际的密钥不一致。你可以删除~/.ssh/known_hosts文件中对应远程主机的记录,然后重新尝试连接。例如,如果你连接的是 GitHub,在known_hosts文件中找到包含github.com的记录并删除,然后再次执行ssh -T git@github.com进行连接。
    • 公钥添加错误:如果在远程仓库添加公钥后,仍然无法免密连接,可能是公钥添加错误。你可以登录到远程仓库,检查添加的公钥是否正确,确保~/.ssh/id_rsa.pub文件中的内容完整无误地复制到了远程仓库的公钥设置中。
    • 端口被占用:SSH 默认使用 22 端口,如果该端口被其他程序占用,也会导致连接失败。你可以使用命令查看 22 端口的占用情况,在 Windows 系统中,使用netstat -ano | findstr :22命令;在 Linux 系统中,使用netstat -tlnp | grep :22命令。如果发现端口被占用,可以修改 SSH 的端口号,在/etc/ssh/sshd_config文件中找到Port 22这一行,将其修改为其他未被占用的端口号,例如Port 2222,然后重启 SSH 服务(在 Linux 系统中,使用sudo systemctl restart sshd命令),同时在连接远程仓库时,需要指定新的端口号,例如ssh -p 2222 -T git@github.com

六、总结

通过以上步骤,我们详细介绍了 Git 的安装与基本配置过程。从下载安装程序,到一步步完成安装,再到配置用户名、邮箱、换行符处理以及 SSH 免密连接,每一个环节都为我们后续高效使用 Git 进行版本控制和团队协作奠定了基础。在安装和配置过程中,可能会遇到各种问题,但通过文中提供的常见问题及解决方法,相信你能够顺利解决。希望你能将所学的 Git 知识应用到实际的开发项目中,充分发挥 Git 在版本管理和团队协作方面的强大优势,提高开发效率和项目的可维护性。如果你在使用 Git 过程中还有其他疑问或遇到新的问题,欢迎在评论区留言交流,我们一起探索和解决。

相关推荐
安冬的码畜日常3 小时前
【工欲善其事】利用 DeepSeek 实现复杂 Git 操作:从原项目剥离出子版本树并同步到新的代码库中
git·ai·powershell·cherry-pick·deepseek·deepseek r1·deepseek v3
利刃大大5 小时前
【Git】一、初识Git && Git基本操作详解
大数据·git·elasticsearch
16年上任的CTO5 小时前
t基础使用--6---git常用命令
git·git常用命令
16年上任的CTO1 天前
it基础使用--5---git远程仓库
git·git远程仓库
苏-言1 天前
Git进阶之旅:Git Hub注册创建仓库
git
摸鱼仙人~2 天前
Git如何避免推送.idea文件夹
java·git·intellij-idea
sunny_liangzilong2 天前
为何 git 默认是 master分支,而github默认是main分支(DeepSeek问答)
git·github
yangshuo12812 天前
git安装flutter
git·flutter
16年上任的CTO2 天前
git基础使用--4---git分支和使用
git·gitee·git分支