Skip to content

Git | 安装配置使用

更新: 4/21/2025 字数: 0 字 时长: 0 分钟

Git 安装

官网下载,运行安装包后默认安装即可。

Git 配置

Git 的所有用户配置文件可以存在于以下几个地方,按照优先级从低到高排列。

当 Git 需要查找某个配置项的值时,它会按照 "Local > Global > System" 的顺序查找。

也就是说,Local 配置优先级最高,System 配置优先级最低。

  • System 配置

    说明

    位置:这个配置适用于系统上所有用户。它的位置取决于操作系统和 Git 的安装方式。

    • Linux: 通常是 /etc/gitconfig/usr/etc/gitconfig
    • Windows: 通常在 Git 的安装目录下,比如 C:\Program Files\Git\etc\gitconfig

    作用:包含系统级别的默认配置。

  • Global 配置

    说明

    位置:这个配置只适用于当前用户。

    • Linux: 通常是 ~/.gitconfig。你也可以使用 $HOME/.gitconfig
    • Windows: 通常是 ~/.gitconfig。你也可以使用 %USERPROFILE%/.gitconfig

    作用:包含用户级别的默认配置。这是最常用的配置文件。

  • Local 配置

    说明

    位置:这个配置只适用于当前 Git 仓库。

    • 它位于仓库的 .git 目录下:.git/config。注意 .git 目录通常是隐藏的。

    作用:包含仓库级别的配置,可以覆盖 Global 和 System 配置。

  • 列出所有配置项

    说明

    虽然你知道了这些文件的位置,但有时你想确定 Git 正在使用的实际配置文件。可以使用以下命令:

    bash
    git config --list --show-origin

    这个命令会列出所有配置项,以及它们来自哪个文件。这对于调试配置问题非常有用。

Git 使用

  • 设置用户名和邮箱

    说明

    因为 Git 是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。

    bash
    git config --global user.name "Your Name"            # 用户名标识,实际也可以填写您的 github 仓库的名称
    git config --global user.email "[email protected]"   # 邮箱标识,可以填写 github 仓库的邮箱

    --global 参数表示当前用户所有的 Git 仓库都会使用这个配置。也可以针对单个仓库单独配置,不加 --global 参数即可。

  • 初始化本地仓库

    说明

    • 打开 Git Bash
    • 使用 mkdir 新建一个文件夹
    • 使用 cd 进入到新建的文件夹
    • 使用 git init 初始化仓库
  • 将 Git 默认分支从 master 修改为 main

    说明

    修改初始化默认分支为 main 分支:

    bash
    git config --global init.defaultBranch main

    修改当前项目的分支为 main

    bash
    git branch -M main

Git 传输协议

一般 Git 代码托管平台都支持两种传输协议 SSH 和 HTTPS

  • 两种方式的区别

    说明

    • SSH

      • 使用 SSH 密钥对(公钥/私钥)进行身份验证。非对称加密,避免密码泄露。
      • 配置一次后,后续操作无需重复输入用户名和密码。
      • 需要生成 SSH 密钥对,并将公钥添加到 Git 托管服务账户。
    • HTTPS

      • 通常需要输入 Git 托管服务的用户名和密码(或 token)。有些客户端支持凭据缓存。
      • 无需设置 SSH 密钥,易于上手。
      • 如果没有配置凭据缓存,则需要频繁输入密码。
    • 如何选择

      • 建议使用 SSH 连接,特别是对于经常需要进行代码推送的开发者来说,SSH 连接可以避免频繁输入密码,并且更安全。
      • HTTPS 连接适用于你只需要进行代码拉取操作,而不需要推送代码。
  • 查看当前仓库使用的传输协议

    说明

    • 使用以下方法查看:

      • 如果 URL 以 git@ 开头,则表示使用 SSH 协议。
      • 如果 URL 以 https:// 开头,则表示使用 HTTPS 协议。
    • 方法一:列出远程仓库及其对应的 URL

      bash
      git remote -v
    • 方法二:从 Git 配置文件中读取远程仓库的 URL

      bash
      git config --get remote.origin.url # 可以将 origin 替换为你想检查的远程仓库的名称
    • 方法三:查看 .git/config 文件

  • 关联远程仓库时选择传输协议

    说明

    在克隆、添加远程仓库时,你需要指定远程仓库的 URL,而这个 URL 就决定了使用的传输协议。

    bash
    # 克隆远程仓库
    git clone [url]
    
    # 添加远程仓库
    git remote add [name] [url]
  • 修改传输协议

    说明

    bash
    git remote set-url [name] [new_url]

HTTPS 连接

需要个人访问令牌。即使没有配置个人访问令牌,也是可以 git clone 的,但是 git push 的时候需要输入用户名和个人访问令牌。

由于网络审查和干扰,在国内使用 HTTPS 连接到 GitHub 时可能会非常慢或不稳定,甚至无法连接。

这是因为 GitHub 的服务器位于国外,经过国内网络访问时可能会受到限制。

解决方法

  • 使用 SSH 连接:由于 SSH 连接使用不同的端口和协议,因此可能不容易受到防火墙的干扰。

  • 使用 VPN 或代理:通过 VPN 或代理服务器,你可以绕过防火墙,访问 GitHub。

  • 配置 Git 使用代理:即使你没有全局 VPN,也可以配置 Git 客户端使用代理服务器。

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

SSH 连接

需要密钥对。如果没有配置密钥对,既不能 git clone,也不能 git push

  • 生成 SSH 密钥

    说明

    打开 Git Bash,使用 cd 进入 ~/.ssh 目录,如果该目录不存在,则用 mkdir 命令创建

    分别运行以下命令,生成用于连接 GitHub 和 Gitee 的 SSH 密钥对

    bash
    ssh-keygen -t rsa -f id_rsa_github -C "github"
    ssh-keygen -t rsa -f id_rsa_gitee -C "gitee"

    连续按三次回车键,即可生成 SSH 密钥对

    同时会在 .ssh 文件夹下生成对应的私钥 id_rsa_xxxx 和公钥 id_rsa_xxxx.pub 文件

    参数解释:

    • -t:指定要创建的密钥的类型(type),默认是 RSA 可以省略,RSA 是一种常用的非对称加密算法,适合用于 SSH 密钥。
    • -f:指定要保存密钥的文件名(filename),选择一个有意义的文件名可以帮助你区分不同的密钥,尤其是在你有多个 SSH 密钥时。
    • -C:指定一个注释(comment),通常用来标识这个密钥是为哪个账户生成的,这只是一个标签,不影响密钥的功能,你可以使用任何你想要的注释。
  • 配置 SSH 配置文件

    说明

    ~/.ssh 目录下打开 config 文件,若没有则新建一个名为 config(不带扩展名)的文件,然后添加以下内容

    ini
    # GitHub
    Host github.com
      User git
      Port 22
      HostName %h
      IdentityFile ~/.ssh/id_rsa_github
      ProxyCommand connect -S 127.0.0.1:10808 %h %p # 按需配置代理,请根据自己使用的代理软件配置对应的地址和端口
    
    # Gitee
    Host gitee.com
      User git
      Port 22
      HostName %h
      IdentityFile ~/.ssh/id_rsa_gitee
  • 添加公钥到 GitHub 和 Gitee

    说明

    • 登录 GitHub,进入 Settings,依次点击 SSH and GPG keys -> New SSH key,输入 Title 以及 Key。
    • GitHub 对应的公钥存放在 id_rsa_github.pub 文件中,打开全部复制即可。
    • 登录 Gitee,进入设置,点击 SSH 公钥输入“标题”以及“公钥”。
    • Gitee 对应的公钥存放在 id_rsa_gitee.pub 文件中,打开全部复制即可。
  • 测试是否添加成功

    说明

    依次在 Git Bash 中输入

    bash
    ssh -T [email protected] # 测试 GitHub
    ssh -T [email protected] # 测试 Gitee

    第一次连接会让输入 yes/no,输入 yes 即可。

Git 代码同步

  • 方法一:克隆远程仓库到本地

    说明

    在 GitHub 创建空仓库,然后克隆到本地

    • 创建空仓库
      • 在 GitHub 网站上手动创建一个新的仓库。创建一个空的仓库,不要初始化任何文件(例如 README.md.gitignore)。
      • 这样做是为了确保你的本地仓库和远程仓库的初始状态完全一致。
    • 克隆到本地
      • 使用 git clone [url] 命令将 GitHub 上的空仓库克隆到你的本地计算机上。[url] 是你在 GitHub 上创建的仓库的 URL。
      • git clone 命令会自动创建一个名为 origin 的远程仓库,并将其指向你克隆的仓库的 URL。
      • 克隆下来的本地仓库已经与远程仓库 origin 建立了连接。
  • 方法二:为本地仓库添加远程仓库

    说明

    在 GitHub 创建空仓库,然后在本地创建空仓库,使用 git remote 将本地和远程两个仓库关联

    • 在 GitHub 上创建空仓库:同样,你需要在 GitHub 网站上手动创建一个空的仓库,不初始化任何文件。
    • 在本地创建空仓库:使用 git init 命令在你的本地初始化一个新的、空的 Git 仓库。
    • 将本地和远程两个仓库关联:使用 git remote add origin [url] 命令将你的本地仓库连接到你在 GitHub 上创建的仓库。
      • origin 是你为远程仓库指定的名称。
      • [url] 是你在 GitHub 上创建的仓库的 URL。
  • 两种方法的比较

    说明

    • 克隆的优点:

      • 更简单:只需一个命令 git clone 即可完成所有设置。
      • 自动配置:自动设置了远程仓库 origin,你无需手动添加。
      • 更常用:克隆是开始使用现有仓库的常见方式。
    • 手动添加 remote 的优点:

      • 更灵活:可以让你更清晰地了解每个步骤的作用。
      • 适用于特殊情况:当你需要将本地仓库连接到多个远程仓库,或者需要使用不同的远程仓库名称时,手动添加 remote 更加灵活。

贡献者

The avatar of contributor named as wkwbk wkwbk

页面历史