# Git 以及 Fork Gui 的使用

这是一份给完全没接触过 Git 的同学准备的实操指南。

# 1. Git 是什么?

  • Git:代码版本管理工具。
  • 你可以把它理解成 “代码时光机 + 协作工具”。
  • 作用:
    • 记录每次代码变化(谁改了什么)。
    • 出问题时回退到历史版本。
    • 多人协作不互相覆盖。

# 2. 先理解 4 个核心概念

  • 工作区(Working Directory):你正在编辑的文件。
  • 暂存区(Staging Area):准备提交的文件清单。
  • 本地仓库(Local Repository):你电脑上的版本历史。
  • 远程仓库(Remote Repository):GitHub/GitLab 上的仓库。

一个最常见流程:

改代码 -> git add -> git commit -> git push

简单理解就是,修改完代码了需要先在本地提交并保存,然后再决定是否要推送到云端。

# 3. 安装 Git(Windows)

  1. 打开 Git 官网:https://git-scm.com/download/win
  2. 下载并安装,安装时一路默认一般就够了。
  3. 安装完成后,打开 PowerShell 或 Git Bash,输入:

1
git --version

看到版本号就说明安装成功。

# 4. 安装 Fork 可视化工具

# 4.1 通过官网,安装 fork:Fork - a fast and friendly git client for Mac and Windows

# 4.2 下载并完成,在安装完成后打开,可以看到

输入自己的 id 和 GitHub 邮箱,选择一个本地的路径作为存储路径

# 4.3 初始化

第一次进入 fork 界面后,首先要创建一个本地的 SSHKey

然后创建一个新的 SSHKey

创建完以后我们可以看到具体的 Key 是多少,复制它,并到 github 的个人界面

# 4.4 克隆项目并进入

  1. 首先去 GitHub 复制 SSH 的链接

  1. 然后在本地克隆

# 5. 界面

左上角区域的作用分别是

  1. Fetch

将远程代码拉到本地,但是暂时不修改本地的代码,即可以看看修改了什么再决定是否要拉取

  1. Pull

将远程代码拉取并覆盖到本地

  1. Push

将本地的代码 Push 到 GitHub 远程仓库

  1. Stash

将本地代码先暂存,可以理解为先把代码放到回收站里,需要的时候再拿出来

从这图中我们可以梳理一下开发的流程。

由于当 LocalChange 中有内容时无法进行 Pull 操作,所以我们在开发前需要先进行 Fetch 和 Pull 操作,在解决完冲突后,再进行开发。

当开发完成后,我们需要对 Unstaged 的内容进行审查,没有问题以后将其 stage,之后这些更改过的文件就会进入 Staged 区,这个时候我们需要在右下角区域写清楚描述,将其 commit。

此时代码已经提交到本地的仓库了,这个时候再点击左上角的 Push 可以将本地仓库的内容提交到 GitHub 远程仓库。

# 6. 分支是什么

分支可以理解成 “平行开发线”,避免你直接在主分支乱改。由于每个人写的部分不一样,所以需要建立自己的分支防止对其他人产生影响。在开发完成后再将分支合并。

# 6.1 创建并切换到新分支

# 6.2 切换分支

在界面中双击某个分支即可切换过去。

# 6.3 合并分支(在 main 上执行)

# 7. 冲突怎么解决

冲突出现时,Git 会提示某些文件冲突。

处理步骤:

  1. 打开冲突文件,会看到类似标记:

1
2
3
4
5
<<<<<<< HEAD
你的代码
=======
别人的代码
>>>>>>> 分支名

  1. 手动保留正确内容,删除这些标记。

# 8. 提交信息怎么写

推荐格式:

类型: 简短说明

常见类型:

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

示例:

  • feat: 新增风险评分卡片
  • fix: 修复收益率计算为 NaN 的问题
  • docs: 补充 README 启动步骤

# 9. 常见报错

# 9.1 fatal: not a git repository

你不在仓库目录里。先 cd 到项目根目录再执行 Git 命令。

# 9.2 nothing to commit, working tree clean

没有可提交的改动,说明你当前文件和上一次提交一致。

# 9.3 rejectednon-fast-forward

远程比你新,先拉取再推送:

1
2
git pull --rebase
git push

# 9.4 Permission denied (推送权限问题)

检查:

  • 仓库地址是否正确。
  • 是否登录了正确账号。
  • SSH key /token 是否配置好。
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

IRON 微信支付

微信支付

IRON 支付宝

支付宝

IRON 贝宝

贝宝