Git 和 GitHub
一、先分清 Git 和 GitHub 到底是什么
Git 是用来管理项目版本的软件,通常装在电脑上。一个项目今天改了哪里、明天又改了哪里,都可以让 Git 分次记下来。即使电脑断网,仍然可以用它查看变化、找回以前的版本,或者另外留一条路线尝试新功能。
在 Git 里,一个被管理的项目通常叫“仓库”。仓库里既有项目文件,也有 Git 留下的版本记录。
GitHub 是一个在线平台,用来把这些仓库放到网上。项目放上去以后,你可以换一台电脑继续做、把项目分享给别人,也可以和别人一起修改。
只在自己的电脑上使用 Git,也能留下版本。需要把仓库放到网上保存、分享或协作时,才会用到 GitHub。
比如你有一个能正常使用的小网页,现在准备让 AI 继续修改。
此时项目只有一份,放在你的电脑里。你按下保存,index.html 里的新内容会覆盖旧内容。如果 AI 把网页改坏了,光靠保存找不回修改前的版本。
二、先把 Git 装到电脑里
前面这个网页还只是普通文件。要让 Git 开始记录它,先把 Git 装上。
Windows 用户打开
,下载安装程序。第一次安装保持默认选项即可。
Mac 用户打开“终端”,输入:
1 | xcode-select --install |
系统弹出命令行开发者工具的安装窗口后,点击“安装”。这套工具里已经包含 Git。如果终端提示工具已安装,不用重复安装。
还列出了 Homebrew 等其他安装方式。
装完后,Windows 用户打开 PowerShell,Mac 用户打开“终端”,输入:
1 | git --version |
能看到 git version 和版本号,说明 Git 已经可以用了。
第一次使用还要告诉 Git,提交记录里写谁的名字和邮箱:
powershell
1 | git config --global user.name "你的名字" |
这两项会写进以后的提交记录,不会帮你登录 GitHub。一台电脑通常只设置一次。
三、先在本地存一个版本,再传到 GitHub
Git 已经装好了。现在回到前面那个 index.html。先把这份能正常使用的网页留成第一个版本。等 AI 加好“任务分类”并确认网页还能用,再留一个新版本。最后把这两个版本传到 GitHub。
第一次:让 Git 接管项目文件夹
打开 index.html 所在的项目文件夹。在文件夹空白处右键,选择“在终端中打开”。如果看不到这个选项,点资源管理器顶部的地址栏,输入 powershell 后回车。
这个项目以前没有用过 Git,先运行:
1 | git init |
git init 会让 Git 开始管理当前文件夹。一个项目只需要运行一次。它不会上传文件。
现在把这份能正常使用的网页存成第一个本地版本:
1 | git status |
这四条命令各做一件事:
- git status 列出改过或还没被 Git 记录的文件。
- git add index.html 把 index.html 放进这次的提交清单。
- git diff –staged 显示清单里准备提交的具体变化。
- git commit 把清单存成一个本地版本。-m 后面是这个版本的说明。
运行 git add 后,文件进入这次的提交清单; 运行 git commit 后,Git 才会留下这个版本。
以后每次改完:先检查,再提交
现在让 AI 增加“任务分类”。改完并保存文件后,先运行:
1 | git status |
git status 告诉你哪些文件变了,git diff 显示具体改了哪些行。确认没有改到无关内容,再把这次修改存下来:
1 | git add index.html |
想看最近留下的版本,运行:
1 | git log --oneline -5 |
看到“增加任务分类”和“保存网页初始版本”,说明两个版本都留在电脑里了。
提交说明就写这次做完了什么,比如“增加任务分类”。如果只写“改一下”“最新版”或“update”,过几天再看,紫腚忘。
比如这次只做了分类筛选,测完没问题,就先提交。数据保存还没做完,继续留着改,测好后再提交。
第一次上传:把本地仓库连到 GitHub
前面的版本还只在电脑里。先在 GitHub 新建一个空仓库,复制它的 HTTPS 地址,我一会要用。回到项目终端,运行:
1 | git branch -M main |
git branch -M main 把当前分支命名为 main。git remote -v 用来检查这个本地仓库是否已经连过 GitHub。
如果 git remote -v 没有任何输出,运行:
1 | git remote add origin https://github.com/你的用户名/仓库名.git |
把命令里的地址换成你刚复制的 HTTPS 地址。git remote add 负责记住 GitHub 仓库的地址,git push 把已经提交的版本上传过去。
如果已经能看到名为 origin 的地址,先确认这个地址就是你刚建的仓库,不要再运行 git remote add。直接运行:
1 | git push -u origin main |
命令里的 -u 会让 Git 记住这次上传的仓库和分支。第一次 push 可能会弹出 GitHub 登录或授权窗口,按提示完成即可。
以后上传:提交后运行 git push
第一次连接成功后,以后每次做好新的提交,只需运行:
1 | git push |
保存文件、git commit 和 git push 是三个不同的动作。
所以正常流程是,改了文件,文件保存,然后git commit把变动的内容 推到本地版本,然后再把本地版本 git push 推到github仓库里。
换电脑时,再用 clone 和 pull
新电脑里还没有这个项目,在准备存放项目的位置打开终端,运行:
1 | git clone https://github.com/你的用户名/仓库名.git |
git clone 会把项目文件和已有提交一起复制到新电脑。这个项目已经是 Git 仓库,不用再运行 git init。
电脑里已经有这个项目,想把 GitHub 上的新提交拿回来,进入项目文件夹后运行:
1 | git status |
如果 git status 显示本地还有做到一半的修改,先把它们提交或处理好,再运行 git pull。git pull 会拿回远程提交,并把它们接到当前分支。如果 push 被拒绝,别强制覆盖,先确认 GitHub 上新增了哪些提交,需要合并时再运行 git pull。
如果 git status 显示本地还有未提交的修改,那么请先将这些修改提交或处理完毕,然后再运行 git pull。git pull 会从远程仓库获取提交内容,并将它们合并到当前分支中。如果推送被拒绝,请不要强制覆盖,先确认 GitHub 上有哪些新的提交,等到需要合并时再运行 git pull。
git clone 是从0到1拿到全部项目时使用。 电脑里已经有这个项目,用 git pull 拉取项目 最新进度文件。
四、这次修改没把握,就先开一条分支
现在待办网页能正常用,你准备让 AI 增加“按分类筛选”。这个功能可能会动到任务读取和保存,直接在 main 上改,改动东西说不定哪个就会导致核心功能受影响。
所以main 一般留给目前确认能用的版本。然后可以创建一条名为 try-category-filter 的分支,再让 AI 开始修改。
先在项目终端运行 git status。确认当前在 main,而且没有尚未提交的修改后,输入:
1 | git switch -c try-category-filter |
这条命令会创建 try-category-filter 分支,并马上切换到这条分支。
创建分支后,项目文件夹不会多出一份。你还是在原来的文件夹里改文件,只是 Git 会把这次的新提交记在 try-category-filter 分支上。
接下来这样做:
- 让 AI 只添加分类筛选,不改其他内容。
- 新增几条不同分类的任务,逐个测试筛选功能。
- 刷新网页,确认原来的任务和分类没有丢失。
- 用 git status 和 git diff 检查改动。确认没问题后,用 git add 和 git commit 提交到当前分支。
这些检查都通过后,把修改合并回 main:
1 | git switch main |
第一条命令切回 main,第二条命令把 try-category-filter 里的提交合并进来。如果测试没通过,就先别合并,继续在 try-category-filter 分支上修改。
以后切换分支前,先运行 git status。如果还有未提交的修改,先别切换,把修改完成并提交后再继续。
git switch main 只负责切换分支,不会撤销文件里的修改。
你可以把分支理解为同一个项目里的另一条修改路线。它不会复制项目文件夹,也不会从 GitHub 重新下载项目。
五、想修改别人的项目,先 Fork 到自己的账号
前面一直在改你自己的待办项目,修改后可以直接 push 到自己的 GitHub 仓库。
如果你想在别人的开源项目基础上继续修改,情况就不同了。你通常没有原仓库的写入权限,不能直接把修改 push 上去。
先打开原仓库,点击右上角的 Fork,再点击 Create fork。GitHub 会在你的账号下创建一份仓库,原仓库不会发生变化。
现在 GitHub 上有两份仓库:
- 原作者的仓库,你没有写入权限;
- 你账号下的 Fork,你可以向这里 push。
进入你账号下的 Fork,点击 Code,复制仓库地址。打开准备存放项目的文件夹,在终端里先输入 git clone 和一个空格,再粘贴刚复制的地址,按回车。这个地址就用在这里。
下载完成后,进入项目文件夹。电脑里的这份项目连接的是你账号下的 Fork,可以直接修改。
修改并测试完成后,按第三章的方法检查和提交,再上传到自己的 Fork:
1 | git push |
这条命令会把本地提交传到你账号下的 Fork,因为刚才 clone 的就是这份仓库。
如果你本来就有原仓库的写入权限,可以直接修改原仓库,不需要先 Fork。
不管修改的是自己的仓库,还是从 Fork 下载的仓库,本地都会反复用到检查改动、提交版本和上传到 GitHub。这几步其实也可以让 AI 帮你做。
六、让 AI 帮你检查、提交和上传
不想记命令,也可以让 AI 帮你操作 Git。不要一上来只说“帮我上传到 GitHub”,先让它检查,再提交,最后上传。
第一步,先看这次改了什么:
1 | 检查这个项目有哪些修改。只查看,不要改文件、提交或上传。告诉我当前在哪条分支、改了哪些文件,并检查里面有没有密码、密钥或个人资料。 |
确认这些修改都要保留后,再让 AI 提交:
1 | 把刚才确认的修改提交到当前分支。先告诉我准备提交哪些文件,等我确认后再提交,暂时不要上传。 |
提交完成后,再让 AI 上传:
1 | 告诉我这次会上传到哪个 GitHub 仓库和哪条分支,等我确认后再执行 git push。 |
如果检查时发现密码、密钥或个人资料,先不要提交,让 AI 帮你把这些内容排除。
看到这里,你已经弄懂 Git 和 GitHub 怎么配合了
Git 负责在电脑里记录修改,GitHub 负责保存网上的仓库。你已经知道怎样把本地修改存成版本、传到 GitHub,也知道换电脑后怎样把项目下载回来继续搞。
分支是在同一个项目里保留另一条修改路线,Fork 是把别人的仓库复制到自己的账号。再看到 clone、pull、push 这些命令,你能看出它们是在下载、更新还是上传项目。
命令不用一次全背下来,边用边查就行。 能分清项目现在在哪儿、仓库是谁的、修改要去哪里,你已经掌握了 Git 和 GitHub 的精髓了。



