Git 与 GitHub:把项目放到网上
上一篇的提交都留在你自己的硬盘里。这一篇讲怎么把它们送到网上,以及为什么 GitHub 账号值得认真对待。
- Git 与 GitHub 是两件不同的东西,各自负责什么;
- 从已有项目出发的六条命令,以及它们各自改了什么;
- 怎么注册一个能长期用的 GitHub 账号,怎么保护它;
- 「用 GitHub 登录」到底交出去了什么,去哪里撤销;
- 怎么判断一个项目页面是不是官方来源。
一、Git 管本机,GitHub 管托管
上一篇讲过,Git 是你电脑上的一个工具,把项目的每次改动存成快照。这些快照全部存在项目目录里的 .git 中,
只在你自己的硬盘上。硬盘坏了,历史就没了。
GitHub 是一个网站,替你把 Git 仓库存到他们的服务器上。它提供三样东西:一份远程备份、一个别人能访问的页面、以及多人协作的通道。
| Git | GitHub | |
|---|---|---|
| 是什么 | 装在电脑上的工具 | 一个网站 |
| 管什么 | 本机的提交历史 | 远程仓库、页面展示、协作 |
| 要不要联网 | 不需要 | 需要 |
| 举个例子 | git commit | 打开 github.com 看仓库页面 |
最容易混淆的一句话:只在本机执行 commit,记录还在本机;执行了 push,才会传到远程仓库。
很多人以为提交完就「上传了」,其实只是本地存了一张快照。
二、从已有项目出发的六条命令
假设 GitHub 上已经有一个项目(自己建的,或者别人的),想把它拿到本机改一改再传回去。整套流程六条命令,够应付入门阶段绝大多数情况。
git clone <仓库地址>
cd <项目目录>
git pull
git status
# 改完文件,先看清改了什么,再挑要提交的
git add <文件名>
git commit -m "更新项目说明"
git push
三条要记住的动作,可以这么理解:
add:选好这次要记的内容。改了五个文件只想要三个,就只 add 那三个。commit:在本机记一笔。快照写进本机的.git,还没有上网。push:把记录传上去。这一步才真的到了 GitHub 上。
另外三条是准备工作:clone 把远程仓库第一次复制到本机;cd 进入这个目录;
pull 在动手之前先取一次最新内容,避免基于旧版本改。
add 就 commit 不进去;commit 了没 push 就只在你自己机器上。
出问题先跑 git status,它会告诉你现在处在哪一步。
新建一个本地项目时还会遇到 git init。它把当前目录变成仓库,只在「这个目录还没有仓库」的时候用。
如果项目是从 GitHub 上 clone 下来的,它已经有仓库了,不需要再 init。
add 和 commit。
拿不准就把冲突提示原样发给 AI 助手,让它按你的实际情况一步步指导,别自己猜。
三、提交之前先看有没有秘密
Git 会把你提交过的内容永久记进历史。所以提交前有一件事必须做:检查文件里有没有不该上传的东西。
- 密码、API key(一串访问密钥)、验证码、订阅链接;
- 个人身份证号、手机号、家庭住址这类信息;
- 别人给你、你又没有权利公开的资料。
公开仓库尤其要谨慎:全世界都能看。私人仓库也不是保险箱,团队成员、被授权的应用都能看。
四、注册一个能长期用的 GitHub 账号
即使你现在不打算写代码,也值得先准备一个 GitHub 账号。它有两个用途:存放你的项目,以及作为第三方登录的身份 ——很多开发者工具、技术社区、在线服务都支持「用 GitHub 登录」。
注册前准备三样东西:
- 邮箱:自己长期掌握、能正常收信的。不要用临时邮箱。
- 密码:和其他网站不重复的强密码。用密码管理器生成并保存,别靠脑子记。
- 用户名:便于长期使用的,别人能记住、你自己不后悔的。它会出现在你所有仓库的网址里。
五步走完注册
- 打开官方注册页。浏览器访问
github.com,点右上角Sign up。 核对地址栏域名确实是github.com,不要从搜索结果里的广告位、代注册页面输入邮箱和密码。 - 填写邮箱、密码、用户名。如果提示邮箱已被使用,先尝试找回原账号,别急着重开一个; 用户名被占用就换一个,不要去买别人的账号。
- 完成人机验证。可能是拼图、可能是选图题。按页面提示做,不要用来路不明的插件绕过验证, 也不要把验证交给代注册的人。
- 去邮箱点验证。打开注册用的邮箱,找 GitHub 发来的邮件,点里面的链接或输入验证码。 验证码和验证链接都属于敏感信息,不要转发、不要截图发到群里。没收到就先查垃圾邮件,再让页面重发一次, 始终用最新那封邮件。
- 完成引导,进入账号。页面可能问你用途、经验、要不要付费套餐。能跳过的个性化引导先跳过; 付费推荐一律先跳过,免费个人账号足够用,注册和基础使用都不需要填银行卡。
注册完做四项验收,缺一项就补:
- 邮箱显示已验证;
- 换一个浏览器窗口能重新登录,说明密码和验证方式都记住了,不是只靠当前这个窗口的登录状态;
- 知道 GitHub 可以用来登录支持它的网站,但不是所有网站都通用;
- 知道去哪里撤销授权(下一节)。
五、「用 GitHub 登录」交出去了什么
这里有两个完全相反的动作,别混:
- 注册 GitHub 时选「用 Google 登录」:这是在创建或进入你的 GitHub 账号,方向是往 GitHub 里进。
- 在别的网站选「用 GitHub 登录」:这是让那个网站确认「你确实是这个 GitHub 账号的主人」,方向是从 GitHub 往外授权。
第二种情况下,那个网站拿不到你的 GitHub 密码。GitHub 会弹出一个授权页,列出对方申请哪些权限,
你点同意之后,GitHub 给对方一个凭证。看到 Sign in with GitHub、Continue with GitHub、
「使用 GitHub 登录」这类按钮,走的就是这条路径。
用过的授权要定期清理。在 GitHub 右上角头像 → Settings → Applications →
Authorized OAuth Apps 里,能看到所有拿到过授权的应用,找到不认识或不再用的,点 Revoke 撤销。
GitHub App 是另一类,在旁边的 Authorized GitHub Apps 列表里管。
撤销的后果要说清楚:那个网站之后不能再通过这个授权访问你的 GitHub,你下次登录它可能需要重新授权。 撤销授权不等于注销那个网站的账号,也不保证对方删掉之前已经拿到的数据。
六、判断一个项目是不是官方来源
同名项目很多,甚至有专门做「高仿页面」骗下载的。下载或克隆之前,按下面几项核对一遍,通常一分钟就够。
| 看什么 | 怎么判断 |
|---|---|
| Star 数 | 收藏人数。太低而宣传很响的,先怀疑。 |
| 最近更新时间 | 两年没动过的项目,文档可能已经和现在的系统对不上。 |
| README 里的官方链接 | 真正的官网地址应该写在 README 里,和你搜到的一致。 |
| 发布页的下载来源 | 只从项目的 Releases 页下载,不从网盘、第三方搬运站、所谓「破解版」下载。 |
「破解版」客户端和模型里夹带的东西防不胜防。省下的那点钱,换来的是一个可能读你文件、传你数据的程序。
一个项目页面上有几块固定区域,认识它们会省很多时间:
- README:首页正文,讲这个项目是什么、怎么装、怎么用;
- Releases:发布页,每个版本的安装包在这里,按系统和处理器架构分开;
- Issues:别人报的问题,你遇到问题先在这里搜,很可能已经有人问过;
- Commits:提交历史,能看到每次改了什么;
- Pull requests:别人提交的改动,等作者审核合并;
- Actions:自动检查的运行记录,绿色勾是通过,红叉是失败。
② 打开任意一个你感兴趣的项目的 Issues 页,搜一个关键词,看别人怎么描述问题、作者怎么回复。
③ 打开
Settings → Applications → Authorized OAuth Apps,看看现在有多少个应用拿到过你的授权。④ 在自己的练习目录里跑一次
git status,确认你能读懂它现在告诉你什么。
自测
1. 提交了但没推送,别人能看到吗?
.git,只有执行 push 之后内容才到 GitHub 上。反过来说,只提交不推送,硬盘一坏历史就没了。