Skip to content

Git & GitHub

字数
1283 字
阅读时间
5 分钟

Git 是一个分布式版本控制系统,能够跟踪代码的修改历史,支持分支管理和多人协作开发。它可以记录每一次更改,允许开发者随时回退到旧版本,也方便地合并不同分支的代码。

GitHub 则是一个基于 Git 的在线代码托管平台,提供远程仓库,方便开发者存储、管理代码,并支持团队成员之间的高效协作。

简而言之:Git 负责本地版本管理,GitHub 实现远程代码托管与协作。

在本次期末项目中,我们要求大家使用 Git 进行版本控制,并将项目代码托管在 GitHub 上。我们会通过你们的 commit 记录来了解项目进展,因此请务必规范使用!

注意

往届有同学通过微信群互传 .zip 压缩包来合作开发。这种方式效率低,无法追踪文件修改记录,也无法回退版本。一旦出现 bug,会严重影响项目进度,甚至打击团队协作积极性。所以我们要求大家从一开始就使用规范的 Git 工作流!

Git 基本操作

关于 Git 的基本用法,推荐大家阅读这篇内容详实的 使用指南,助教就不重复造“轮子”了😀

一些补充

  • Git 命令很多,一开始可能有点懵。别担心,其实掌握几个常用操作就够用了,比如添加文件(add)、提交修改(commit)、拉取/推送(pull/push)、切换分支(checkout)。其他操作等用到的时候再去查就行~
  • 不推荐使用学邮注册 GitHub 账号@m.fudan.edu.cn 的邮箱在毕业后会被回收,可能影响账户安全。
  • 推荐使用 .gitignore 文件来避免提交不必要的文件
    安装 gitignore 插件 后,在 VSCode 中使用快捷键 Ctrl + Shift + P,输入 "Add gitignore",选择项目语言(如 Python)即可从远程拉取 .gitignore 模板。
  • 如果你对命令行不熟悉,推荐使用 GitHub Desktop
    这是 GitHub 官方提供的可视化工具,支持拖动文件、点击按钮完成提交、合并等操作。(悄悄说一句:助教大二做数据库项目的时候也是靠这个活下来的🤣)
  • 当你合并分支时,可能会遇到冲突。VSCode 会显示类似以下格式:
    • 请根据实际需要,选择其中一种处理方式:
      • Accept Current(保留当前分支内容)
      • Accept Incoming(保留另一个分支内容)
      • Accept Both(保留两边内容,手动整理)
    • 或者点击 "Resolve in Editor",通过左右分支的对比界面,手动选择并编辑最终保留的代码。
  • 在 VSCode 中,安装 GitLens 插件可以大大增强 Git 可视化体验
    • 将鼠标悬停在某一行代码上,即可显示最后修改该行的作者和 commit 信息;
    • 右键点击可查看该文件或某一行的历史版本;
    • 支持 Git Blame 可视化,方便了解每一行代码的责任人;
    • 更多功能欢迎大家自行探索~

    顺便推荐一个有趣的 StackOverflow 问答:What does git blame do?

Git 代理配置

在某些网络环境下,例如访问 GitHub 受限时,我们可以通过配置 Git 使用代理来确保正常访问远程仓库。

查找代理服务器地址

首先,确认你的代理服务器的地址和端口(如使用 Clash 或其他代理工具)。一般情况下,Clash 运行在 127.0.0.1:7890,但也可能根据配置有所不同。

配置 Git 使用代理

使用以下命令来配置 Git 全局代理:

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

请注意,这里 127.0.0.17890 是你代理服务器的 IP 地址和端口。如果你的代理服务器使用的是不同的地址或端口,请替换为相应的值。

设置代理认证(如果需要)

如果你的代理服务器需要认证(例如用户名和密码),可以使用以下命令:

bash
git config --global http.proxy http://username:password@127.0.0.1:7890
git config --global https.proxy http://username:password@127.0.0.1:7890

usernamepassword 替换为你的代理认证信息。

配置特定仓库的代理

如果只需要为某个特定仓库配置代理,而不是全局配置,可以在该仓库目录下运行以下命令:

bash
git config http.proxy http://127.0.0.1:7890
git config https.proxy http://127.0.0.1:7890

取消代理设置

如果你不再需要代理,可以通过以下命令取消 Git 的代理设置:

bash
git config --global --unset http.proxy
git config --global --unset https.proxy
The avatar of contributor named as mango7789 mango7789