.
1. 介绍
为什么将 Ubuntu 与 GitHub 连接?
近年来,Git 和 GitHub 的使用已成为软件开发和系统运维的标准做法。对于在 Ubuntu 等 Linux 环境下工作的工程师和程序员来说,与 GitHub 的集成已是日常工作流的一部分。
Git 是用于管理源码版本历史的工具,是多开发者高效协作的必备利器。GitHub 则是一个托管服务,可以将 Git 管理的仓库在线共享和发布,充当全球开发者交流代码的中心枢纽。
为什么在 Ubuntu 上使用 GitHub?
Ubuntu 是深受开发者喜爱的 Linux 发行版,以其出色的开源开发兼容性而闻名。它提供了一个可以轻松安装 Git 及其他开发工具的环境,使得 GitHub 的集成过程顺畅高效。
将 Ubuntu 与 GitHub 结合的典型使用场景包括:
- 在 GitHub 上管理和共享 Python、C++ 等源码
- 为开源项目贡献代码
- 将你的作品发布为作品集
本文你将学到什么
本指南通过以下步骤,从基础到进阶完整讲解在 Ubuntu 上使用 GitHub:
- 如何在 Ubuntu 上安装 Git
- 初始 Git 配置与 SSH 设置
- 创建与管理 GitHub 仓库
- 使用 Visual Studio Code 高效开发
- 常见故障排除技巧与 FAQ
即使是首次使用 GitHub 的用户,也能安全跟随本文的示例命令和重要提示。如果你想在 Ubuntu 上充分发挥 GitHub 的威力,请阅读至文末。
2. 在 Ubuntu 上安装 Git
什么是 Git?快速回顾
Git 是一种版本控制系统(VCS),用于在软件开发中管理源码的变更历史。它让开发者能够恢复到之前的状态,并实现多人同步协作。
Linux 环境(如 Ubuntu)的一个重要优势是可以非常轻松地安装 Git。使用下面的方法,只需在终端几分钟即可完成安装。
通过 APT 安装 Git
在 Ubuntu 上安装 Git 最常用的方式是使用 APT(Advanced Package Tool)。请按以下步骤操作:
1. 更新软件包列表
sudo apt update
此命令会获取最新的软件包信息。安装新软件前请务必先运行它。
2. 安装 Git
sudo apt install git
当出现 “Y/n” 提示时,输入 y 并回车,即可开始安装。
验证 Git 安装
安装完成后,确认 Git 是否正确安装:
git --version
如果看到类似以下的输出,说明 Git 已成功安装:
git version 2.34.1
版本号可能因你的 Ubuntu 发行版而异,只要有版本信息输出即表示安装成功。
通过 Snap 安装(可选)
虽然也可以使用 snap 命令安装 Git,但APT 通常更稳定、使用更广泛。除非有特殊需求,否则推荐使用 APT 安装方式。
3. 初始 Git 配置
使用 Git 前的必要设置
Git 安装完毕后,接下来需要配置用户信息和认证方式。正确的配置可确保与远程仓库以及团队协作的顺畅交互。
设置 Git 用户名和邮箱
Git 会记录每一次提交的作者信息。因此,你必须配置用户名和邮箱地址。
配置命令
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
这些值不必与 GitHub 账户完全一致,但使用与 GitHub 相同的邮箱有助于正确关联提交记录。
验证配置
git config --list
此命令会显示当前的 Git 配置情况。
生成并注册 SSH 密钥
translation.
虽然支持 HTTPS,但 SSH 认证可以消除重复的密码提示,并提供更安全高效的工作流。
1. 生成 SSH 密钥
ssh-keygen -t ed25519 -C "you@example.com"
按回车键多次以生成私钥 (~/.ssh/id_ed25519) 和公钥 (~/.ssh/id_ed25519.pub)。
2. 启动 SSH 代理并添加密钥
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
SSH 密钥现在已准备就绪。
3. 将公钥添加到 GitHub
复制公钥:
cat ~/.ssh/id_ed25519.pub
然后在 GitHub 上注册它:
- 登录 GitHub
- 点击你的头像 → Settings(设置)
- 选择 “SSH and GPG keys”
- 点击 “New SSH key”,粘贴密钥并保存
4. 测试 SSH 连接
ssh -T git@github.com
当系统提示信任主机时,输入 yes。
如果成功,你会看到:
Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.
推荐的后续步骤
完成此设置后,你现在可以克隆、推送和拉取 GitHub 仓库。下一节将实际演示 如何创建和操作 GitHub 仓库。

4. 使用 GitHub 仓库
在 GitHub 上创建新仓库
登录 GitHub 后,首先创建一个新仓库。
步骤(通过网页浏览器)
- 点击 GitHub 首页右上角的 “+” 按钮,选择 “New repository”。
- 输入以下信息:
- Repository name(仓库名称): 示例
my-first-repo - Description (optional)(描述,可选): 简要说明
- Public / Private(公开 / 私有): 选择仓库可见性
- 点击 “Create repository”。
创建完成后,会显示仓库的 URL。你将使用该 URL 来克隆和管理仓库。
克隆已有的 GitHub 仓库
要将仓库复制到本地 Ubuntu 环境,使用 git clone 命令。
git clone git@github.com:your-username/my-first-repo.git
此示例使用 SSH。如果使用 HTTPS,URL 会不同。
执行后,会生成一个名为 my-first-repo 的目录,里面包含仓库文件。
文件更改、暂存与提交工作流
1. 添加或编辑文件
例如,创建一个新文件:
echo "# My First GitHub Project" > README.md
2. 暂存更改
git add README.md
暂存决定哪些更改会包含在下一次提交中。
3. 提交更改
git commit -m "Initial commit: add README.md"
你的更改现在已保存到本地仓库历史中。
将更改推送到 GitHub
要将本地更改同步到远程 GitHub 仓库,使用 git push。
git push origin main
如果你的默认分支不是 main(例如 master),请相应地修改分支名称。
将远程更改拉取到本地
如果其他开发者已经提交了更改,使用以下命令更新本地仓库:
git pull origin main
这会将远程更改合并到本地分支。
常用的其他操作
- 查看远程仓库:
git remote -v
- 以后再添加另一个 GitHub 仓库:
git remote add origin git@github.com:your-username/another-repo.git
- 编辑 README.md 或 .gitignore 也遵循相同的工作流。
5. 与 Visual Studio Code 集成
为什么 VS Code 适合 Git 操作
在 Ubuntu 上使用 GitHub 时,结合 Visual Studio Code(VS Code) 能显著提升生产力。VS Code 是微软开发的开源编辑器,以 出色的 Git 集成 而闻名。它提供图形界面完成提交、推送和差异审查,非常适合初学者。
在 Ubuntu 上安装 VS Code
你可以按照以下步骤轻松在 Ubuntu 上安装 VS Code。
1. 添加 Microsoft 软件源
…(后续内容保持原样)
.“` sudo apt update sudo apt install wget gpg wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg –dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
#### 2. 注册仓库
sudo sh -c ‘echo “deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main” > /etc/apt/sources.list.d/vscode.list’
#### 3. 安装 VS Code
sudo apt update sudo apt install code
安装后,您可以在终端中输入 `code` 来启动 VS Code。
### 内置 Git 支持
VS Code 默认包含 Git 集成,因此对基本的 Git 操作 **不需要额外插件**。如需高级功能,推荐以下扩展:
* **GitHub Pull Requests and Issues** 提供基于 GUI 的拉取请求处理和问题管理。
* **GitLens** 可视化逐行历史,显示谁在何时更改了什么。
### VS Code 中的基本 Git 操作
#### 打开仓库
导航到您克隆的仓库并运行:
code .
#### 查看更改并提交
* 点击左侧边栏的源代码管理图标
* 查看已修改文件列表
* 选择文件以查看差异
* 输入提交信息并点击 ✓ 图标
#### 推送和拉取操作
* 从 “…” 菜单中选择 “Push” 或 “Pull”。
* 或使用右下角的状态栏
### 使用集成终端
内置终端(`` Ctrl + ` ``)可在 GUI 与 CLI 工作流之间无缝切换。例如,您可以通过 GUI 提交,同时在终端中管理分支。
### 故障排除技巧
* 如果出现 SSH 错误,请确认 VS Code 使用了正确的 SSH 密钥
* 您可能需要重新配置身份验证或使用 **GitHub 个人访问令牌 (PAT)**
## 6. 常见故障排除
### SSH 错误:“Permission denied (publickey).”
#### 可能原因
* SSH 密钥未正确生成
* 公钥未在 GitHub 上注册
* SSH 代理未加载密钥
#### 解决方案
1. 检查是否已有 SSH 密钥:
ls ~/.ssh/id_ed25519.pub
如果不存在,生成一个:
ssh-keygen -t ed25519 -C “your_email@example.com”
2. 启动 SSH 代理并添加密钥:
eval “$(ssh-agent -s)” ssh-add ~/.ssh/id_ed25519
3. 将公钥添加到 GitHub:
cat ~/.ssh/id_ed25519.pub
在 GitHub 的 “SSH and GPG keys” 中添加。
4. 测试连接:
ssh -T git@github.com
### HTTPS 认证错误
#### 原因
* 密码认证已被弃用;**需要基于令牌的认证**
#### 解决方案
1. 在 GitHub 上创建个人访问令牌 <https://github.com/settings/tokens>,创建令牌时勾选 `repo` 范围
2. 使用您的 GitHub 用户名和 **令牌字符串** 作为密码
3. 如有需要,可启用凭据缓存:
git config –global credential.helper cache
### 错误:“fatal: not a git repository”
#### 原因
* 当前目录 **不是 Git 仓库**
#### 解决方案
* 进入已有仓库的目录:
cd ~/your-project-directory
* 或初始化一个新仓库:
git init
### 处理合并冲突
#### 原因
* 当多个用户同时编辑同一文件的同一部分时会产生冲突
#### 解决方案
1. 在 `git pull` 出错后打开冲突文件
2. 查找冲突标记:
<<<<<<< HEAD Your changes ======= Other changes
origin/main
3. 编辑内容,删除标记并保存
4. 然后运行:
git add . git commit
### 错误:“remote: Repository not found.”
#### 原因
* 仓库 URL 不正确
* 没有仓库访问权限
#### 解决方案
* 检查远程 URL:
git remote -v
* 如有必要,重置 URL:
git remote set-url origin git@github.com:your-username/your-repo.git
这些问题初学者经常遇到。然而,有明确的原因和解决方案,可以冷静解决。将错误视为**学习机会**,逐步建立信心。
## 7. 常见问题解答
### Q1. Git 和 GitHub 的区别是什么?
**A:**
Git 是一个**版本控制工具**,用于本地管理变更历史。GitHub 是一个**云服务**,用于托管 Git 仓库并实现分享和协作。
* Git:本地和离线历史管理
* GitHub:在线仓库托管和协作
### Q2. 我应该使用 SSH 还是 HTTPS?
**A:**
**推荐使用 SSH**,因为:
* 无需重复输入密码
* 长期更安全和便捷
然而,在某些企业或网络环境中,可能需要使用 HTTPS。
### Q3. 如何在 Ubuntu 上使用多个 GitHub 账户?
**A:**
为每个账户生成单独的 SSH 密钥并明确配置它们。
1. 创建单独的 SSH 密钥 示例:`~/.ssh/id_ed25519_work` , `~/.ssh/id_ed25519_personal`
2. 编辑 `~/.ssh/config` :
Host github.com-work HostName github.com User git IdentityFile ~/.ssh/id_ed25519_work
Host github.com-personal HostName github.com User git IdentityFile ~/.ssh/id_ed25519_personal
3. 更新远程 URL:
git remote set-url origin git@github.com-work:your-work-user/your-repo.git
### Q4. 我可以使用 GUI 使用 Git 吗?
**A:**
是的。Visual Studio Code 提供基于 GUI 的 Git 操作,包括提交、推送、差异和分支管理。强烈推荐给初学者。
### Q5. 如果我删除了远程仓库会发生什么?
**A:**
删除远程仓库不会影响本地仓库。但是,`git push` 将失败。
您可以按以下方式重新连接到新的远程仓库:
git remote set-url origin git@github.com:new-user/new-repo.git
### Q6. 是否可以完全避免使用终端?
**A:**
是的。GUI Git 客户端允许无终端工作流程:
* **GitKraken**
* **Sourcetree**(在 Linux 上无官方支持)
* **Visual Studio Code**(内置 Git 支持)
对于 Ubuntu 用户,**VS Code + GitLens** 组合是最实用和用户友好的。
### Q7. Git 历史可以追溯多远?
**A:**
Git 保留**从第一个提交开始的所有历史**。您可以使用以下命令查看:
git log
要查看特定文件的历史:
git log path/to/file “`


