拉取项目

Superpowers 仓库 为例。

Superpowers 是一套面向 AI Coding Agent 的开发方法论,

通过一系列可组合的 skill 与初始化指令,
增强代码代理的工程能力。

首先新建一个文件夹,用于存放项目。

例如:

D:\superpowers

法一:

win + r 输入 cmd 打开命令行。

注意:

Windows 默认不能直接跨盘符切换。

先进入对应盘符,再进入目标目录:

cd /d D:\superpowers

法二:

直接在文件夹空白处:

右键 → 在终端中打开

随后执行:

git clone https://github.com/obra/superpowers

Git 会自动完成:

  • 创建项目目录
  • 初始化本地仓库
  • 下载远程代码
  • 创建 .git 目录
  • 建立远程仓库关联

在这里插入图片描述

创建自己分支

在团队开发中,通常不会直接在 main 分支开发。

开发者会基于开发分支创建自己的功能分支,
这样可以做到:

  • 功能隔离
  • 避免代码互相覆盖
  • 方便代码审核
  • 降低线上风险

项目克隆完成后,代码会位于:

D:\superpowers\superpowers

Git 仓库就在这一层目录,因此后续 Git 操作都需要在该目录执行。

进入项目目录:

cd D:\superpowers\superpowers

创建并切换到 dev 分支:

git checkout -b dev

该命令等价于:

git branch dev
git checkout dev

即:

1. 创建 dev 分支
2. 切换到 dev 分支

查看当前分支:

git branch

输出示例:

D:\superpowers\superpowers>git branch

* dev
  main

当前仓库包含两个分支:

main
主分支,通常用于生产环境稳定代码

dev
开发主分支,用于日常开发

在这里插入图片描述

创建远程仓库

如果只是单纯复制别人的项目,

最简单的方法通常是:

Fork 仓库

但这里使用“重新绑定远程仓库”的方式,

可以更好理解 Git 中:

  • remote
  • origin
  • push
  • fetch

等核心概念。


首先需要在:

等平台创建自己的仓库。

创建完成后,会得到自己的仓库地址:

https://github.com/你的用户名/你的仓库.git

查看当前远程仓库:

git remote -v

输出示例:

D:\superpowers\superpowers>git remote -v

origin  https://github.com/obra/superpowers (fetch)
origin  https://github.com/obra/superpowers (push)

其中:

origin

是 Git 默认的远程仓库别名。

Git 实际上允许关联多个远程仓库,例如:

origin
upstream
backup
test

当前项目的 origin 指向原作者仓库。

如果直接推送:

git push

并且你拥有权限:

  • 代码会进入远程仓库
  • 其他开发者会拉取到你的修改
  • CI/CD 可能自动部署
  • 自动测试可能被触发

因此需要将 origin 修改为自己的仓库。

执行:

git remote set-url origin 你自己的仓库地址

例如:

git remote set-url origin https://github.com/你的用户名/superpowers.git

再次查看:

git remote -v

输出:

origin  你自己的仓库地址 (fetch)
origin  你自己的仓库地址 (push)

说明:

当前 origin 已经指向自己的远程仓库。

在这里插入图片描述

推送代码

此时远程仓库通常为空,

需要将本地代码推送到自己的仓库。

执行:

git push -u origin dev

其中:

-u

表示:

建立本地 dev 分支与远程 dev 分支的跟踪关系

后续再次推送时:

git push

即可直接推送。

开发流程

此时已经拥有:

  • 自己的仓库
  • 自己的开发分支

接下来进入日常开发流程。


1、拉取最新代码

开发前先同步远程代码:

git checkout dev
git pull

其中:

git pull

本质等价于:

git fetch
git merge

即:

1. 拉取远程最新代码
2. 合并到当前分支

2、创建功能分支

例如开发登录功能:

git checkout -b feature/login

此时分支结构:

main
 └── dev
      └── feature/login

公司开发中通常会存在多个功能分支:

main
 └── dev
      ├── feature/login
      ├── feature/order
      ├── feature/pay
      └── feature/user

命名规范通常为:

feature/功能名

3、开发代码

在当前功能分支进行代码开发。


4、查看代码状态

执行:

git status

示例:

D:\superpowers\superpowers>git status

On branch feature/login
nothing to commit, working tree clean

常见状态:

modified
文件已修改

untracked
新文件未被 Git 管理

staged
文件已加入暂存区

5、添加暂存区

执行:

git add .

作用:

将当前目录下所有修改加入暂存区。

Git 提交并不是直接提交工作区,

而是先提交:

工作区 → 暂存区 → 本地仓库

在这里插入图片描述

6、提交代码

执行:

git commit -m "完成登录功能"

建议提交信息简洁明确:

feat: 完成登录功能
fix: 修复订单异常
refactor: 重构支付模块

7、推送代码

执行:

git push

代码会被推送到远程仓库。


8、提 Pull Request / Merge Request

功能开发完成后:

feature/login

不会直接进入主分支。

而是:

提交 PR(Pull Request)
或
提交 MR(Merge Request)

等待:

  • Code Review
  • 自动测试
  • 审核通过

9、合并代码

切换到目标分支:

git checkout dev

执行合并:

git merge feature/login

流程如下:

feature/login
      ↓
    merge
      ↓
      dev

Git 会将:

feature/login

中的提交记录合并到:

dev

中。


如果多人同时修改同一文件,

可能出现:

CONFLICT

即:

代码冲突

需要手动修改后重新提交。


在这里插入图片描述

公司中的标准开发流程

在这里插入图片描述

企业开发中通常采用如下结构:

main
 └── dev
      ├── feature/user
      ├── feature/order
      ├── feature/pay
      └── feature/login

标准流程:

1. 从 dev 拉取最新代码
2. 创建 feature 分支
3. 开发功能
4. git add
5. git commit
6. git push
7. 提交 PR / MR
8. Code Review
9. 合并到 dev
10. 测试完成后合并 main

Git 本质

Git 本质上是在管理:

  • 文件快照
  • 提交历史
  • 分支指针

Git 的分支并不是复制一份代码,

而只是:

一个新的提交指针

因此 Git 创建分支速度非常快。


在这里插入图片描述

常见问题

1、push 被拒绝

错误示例:

! [rejected]

原因:

远程仓库存在新的提交,
本地代码不是最新版本。

解决:

git pull
git push

2、merge 冲突

错误示例:

CONFLICT

原因:

多人同时修改同一代码区域。

解决流程:

1. 手动修改冲突代码
2. git add .
3. git commit

在这里插入图片描述

总结

日常开发核心流程:

pull
 ↓
checkout
 ↓
coding
 ↓
add
 ↓
commit
 ↓
push
 ↓
merge

Git 的核心目标:

  • 隔离开发

  • 保证代码稳定

  • 方便团队协作
    本质上是在管理:

  • 文件快照

  • 提交历史

  • 分支指针

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐