git和github操作
因为我不想背 Git 命令,所以整理了用 AI 管理 Git 和 GitHub 的方式:每个操作都给出对应的提示词,从连接远程仓库、看懂仓库页面,到日常提交、回滚、分支协作,最后附一份完整流程和速查表。
1. 连接本地 Git 与远程 GitHub
- 方法:告诉 AI:“帮我配置 Git 用户名和邮箱,并生成 SSH Key 连接到 GitHub”。
- 流程:AI 会自动完成以下步骤:
- 设置本地 Git 的用户名和邮箱。
- 生成 SSH 密钥对(私钥存于本地,公钥需添加到 GitHub)。
- 引导你在 GitHub 的
Settings -> SSH and GPG keys中添加公钥。
- 验证连接:在终端输入
ssh -T git@github.com,看到欢迎信息即表示成功。
- 流程:AI 会自动完成以下步骤:
2. 解读 GitHub 仓库页面
- 代码目录 (Code)
- 显示项目所有文件和文件夹。
- 文件后的文字是提交备注 (Commit Message),描述了该文件最后一次修改的内容。
- 上方的数字表示项目的总提交次数 (Commits)。
- 提交历史 (Commits)
- 点击提交数字可查看完整历史。
- 每次提交都有一个唯一的编码号 (Commit Hash),用于精确回退到该版本。
- 分支 (Branch)
- 可视化显示项目的时间线分叉。
- 主分支 通常名为
main(或master),代表稳定、权威的版本。 - 功能分支 用于实验新功能,不影响主分支。测试满意后可合并 (merge) 回主分支,不满意可直接删除。
- 问题追踪 (Issues)
- 用于报告和讨论项目中的问题。
- Open:未解决的问题。
- Closed:已解决的问题。
- 使用前先搜索
Closed中是否有现成解决方案。
- 复刻与收藏 (Fork & Star)
- Star:类似“点赞/收藏”,是衡量项目受欢迎程度和可靠性的重要指标。
- Fork:将他人仓库完整复制一份到你自己的 GitHub 账户下,便于你在此基础上进行修改,而不影响原项目。这与
git clone(下载到本地)不同。
3. 管理自己的项目
- 创建 GitHub 仓库
- 在 GitHub 右上角
+->New repository。 - 设置仓库名、描述。
- 设置可见性:
Public(公开)或Private(私有,后续可更改)。建议初期设为私有,稳定后再公开。 - 初始化时不要勾选添加 README、.gitignore 等文件:远程仓库一旦有文件,本地首次推送就可能产生历史冲突,让 AI 从本地生成再推上去更省事。
- 在 GitHub 右上角
- 将本地项目与远程仓库关联
- 告诉 AI:“把当前文件夹初始化成git项目,并与GitHub 仓库 [你的仓库SSH地址] 连接起来,并创建.gitignore文件,把不需要的内容排查掉”
- AI 会执行
git init、git remote add等命令。
- 安全第一:配置
.gitignore文件- 重要性:防止将敏感信息(如 API 密钥)和本地缓存文件上传。
- 操作:告诉 AI:“帮我生成一个 .gitignore 文件,不要上传密钥和本地缓存”。
- AI 会自动创建该文件,列出应被忽略的文件或目录(如
.env,node_modules)。
- 日常修改、保存与上传
- 原理四步:工作区 ->
git add(暂存区) ->git commit(本地仓库) ->git push(远程 GitHub)。 - 简化操作:无需记忆命令,每完成一个功能或一次重要修改后,直接告诉 AI:
“帮我把现在的改动保存一下,推到 GitHub,备注:[描述你这次做了什么]”。 - AI 会自动执行上述三连串命令。
- 原理四步:工作区 ->
- 项目恢复与回滚
- 当项目被改坏时,无需记忆复杂命令(
git restore,git reset,git revert)。 - 最佳实践:养成频繁 commit 的习惯。
- 恢复方法:去 GitHub 仓库的提交历史页面,找到目标版本的 Commit 编码号,然后把需求告诉 AI:
- (1) “把仓库还原到 [编码号] 这次提交的状态,后面所有改动都不要”——对应
git reset --hard,历史直接抹掉。- (2) “撤销 [编码号] 这一次提交引入的改动,保持后续 commit 提交的内容”——对应
git revert,生成一条新的反向提交,更安全。
- (2) “撤销 [编码号] 这一次提交引入的改动,保持后续 commit 提交的内容”——对应
- (1) “把仓库还原到 [编码号] 这次提交的状态,后面所有改动都不要”——对应
- 当项目被改坏时,无需记忆复杂命令(
- 项目门面:写 README
- README.md 是仓库首页显示的说明文档,别人打开仓库第一眼看到的就是它。
- 建仓时没勾选也没关系,随时可以补一条提示词:
“帮我为这个项目生成一个 README,包含项目介绍、功能列表和如何运行”。 - 之后每次项目有大变化(加了新功能、改了运行方式),记得让 AI 顺手更新它。
4. 使用别人的项目
- 克隆到本地 (Clone)
- 在仓库页面点绿色
Code按钮,复制 HTTPS 或 SSH 地址,然后告诉 AI:
“帮我把这个仓库克隆到本地:[仓库地址]”。AI 会执行git clone。 - Clone 下来的项目带有完整 Git 历史,之后可以随时
git pull拉取原作者的更新。
- 在仓库页面点绿色
- 只想下载文件 (Download ZIP)
- 同样在
Code按钮里选Download ZIP,解压即用。 - 区别:ZIP 包里没有 .git 历史,不能拉更新、不能提交,只是拿到一份静态快照。只想看代码或跑一次就用它,想长期跟进项目就用 clone。
- 同样在
- 在 Fork 的基础上修改
- Fork 之后你就有了自己的副本,把它 clone 到本地就能随便改。
- 改完后自己的仓库直接 push 即可;如果想让改动回到原作者的项目,就需要发 Pull Request(本文不展开,用到时再让 AI 教你)。
5. 进阶用法与技巧
- 使用分支进行实验
- 场景:想尝试新功能,又不想影响现有稳定版本。
- 操作:
- “帮我新开一个分支叫 [分支名],在这里试新方案”。
- 实验完成后,如需合并:“帮我把 [分支名] 合并进主干,遇到冲突时就停下来问我怎么处理”。
- 处理合并冲突
- 当主分支和实验分支修改了同一文件同一部分,合并时会产生冲突。
- 方法:让 AI 列出冲突位置和选项(保留主线内容/分支内容/两者都保留),你只需做出选择。
- 多设备/多人协作同步
- 场景:需要从 GitHub 获取项目最新版本。
- 操作:“帮我从 GitHub 拉一下最新版本”。AI 会执行
git pull。
6. 全流程
Step 1: 准备工作(确保主分支干净)
1. 切到主分支
git checkout main
2. 拉取远程最新代码(确保和 GitHub 同步)
git pull origin main
Step 2: 开新分支(开始干活)
git checkout -b 分支名称
Step 3: 在分支上开发并提交
git add .
git commit -m "内容备注"
Step 4: 推送到远程
git push
Step 5:去github网页合并代码到主分支,合并完删除远程分支
Step 6: 本地同步
# 1. 切回主分支
git checkout main
# 2. 拉取云端合并后的最新代码
git pull origin main
Step 7: 清理本地分支(如果还要使用该分支开发可不清理)
git branch -d feat/分支名
# 查看分支
git branch
7. 提示词速查表
| 场景 | 提示词 |
|---|---|
| 首次配置 | “帮我配置 Git 用户名和邮箱,并生成 SSH Key 连接到 GitHub” |
| 验证连接 | 终端输入 ssh -T git@github.com |
| 关联远程仓库 | “把当前文件夹初始化成 git 项目,并与 GitHub 仓库 [仓库SSH地址] 连接起来,并创建 .gitignore 文件” |
| 生成 .gitignore | “帮我生成一个 .gitignore 文件,不要上传密钥和本地缓存” |
| 写 README | “帮我为这个项目生成一个 README,包含项目介绍、功能列表和如何运行” |
| 克隆别人的仓库 | “帮我把这个仓库克隆到本地:[仓库地址]” |
| 日常提交 | “帮我把现在的改动保存一下,推到 GitHub,备注:[这次做了什么]” |
| 拉取最新代码 | “帮我从 GitHub 拉一下最新版本” |
| 开分支实验 | “帮我新开一个分支叫 [分支名],在这里试新方案” |
| 合并分支 | “帮我把 [分支名] 合并进主干,遇到冲突时就停下来问我怎么处理” |
| 处理冲突 | “列出冲突位置和选项(保留主线/分支/两者都保留),我来选” |
| 彻底回滚 | “把仓库还原到 [编码号] 这次提交的状态,后面所有改动都不要” |
| 撤销单次提交 | “撤销 [编码号] 这一次提交引入的改动,保持后续 commit 提交的内容” |