一、先搞清楚两个概念:Git 和 GitHub

很多新手会把 Git 和 GitHub 混为一谈,先把这个搞清楚:

概念是什么类比
Git一个安装在电脑上的版本控制工具你手里的本地记账本
GitHub一个在线的代码托管平台存在云端的共享副本

Git 负责在本地记录每一次代码修改,让你可以随时回退到任意历史版本。GitHub 则把你本地的代码仓库同步到云端,既能备份,也方便多人协作。

两者关系:你用 Git 在本地管理代码,然后通过 Git 命令把代码推送到 GitHub 上。

二、安装与配置

2.1 注册 GitHub 账号

访问 GitHub 官网,点击右上角的“Sign up”,填写用户名、邮箱和密码。用户名建议用英文,避免后续命令行操作时遇到不必要的问题。

注册完成后,去邮箱里点一下验证链接,账号就激活了。

2.2 安装 Git

Windows 用户:

  1. 访问 Git 官网下载页面

  2. 下载 .exe 安装包

  3. 运行安装程序,一路点击“下一步”,全部保持默认选项即可

  4. 安装完成后,在开始菜单里找到“Git Bash”,打开后输入 git --version,看到版本号就说明安装成功

Mac 用户:

  • 打开终端(Terminal),输入 git --version

  • 如果没装,系统会自动弹出提示安装 Xcode Command Line Tools,点击确认等待完成即可

Linux 用户(Ubuntu/Debian):

bash

sudo apt update
sudo apt install git
git --version   # 验证安装

2.3 配置 Git 身份信息

这一步非常关键。Git 的每一次提交都会记录作者信息,如果不配置,后面的操作会报错。

打开终端或 Git Bash,输入:

bash

git config --global user.name "你的GitHub用户名"
git config --global user.email "你的注册邮箱"

--global 代表全局配置,意思是对这台电脑上的所有 Git 仓库都生效。配置完成后可以用以下命令查看是否生效:

bash

git config --list

你应该能看到 user.name 和 user.email 已经出现在列表里。

2.4 (推荐)配置 SSH 免密登录

默认情况下,每次向 GitHub 推送代码都需要输入用户名和密码(现在密码已被 Token 替代)。配置 SSH 密钥后可以实现免密操作,大大提高日常效率。

第一步:生成 SSH 密钥

在终端中输入:

bash

ssh-keygen -t ed25519 -C "你的注册邮箱"

系统会询问:

  • 保存路径:直接按回车(用默认的 ~/.ssh/id_ed25519)

  • 是否设置密码:直接按回车(留空即可)

第二步:复制公钥

bash

cat ~/.ssh/id_ed25519.pub

复制输出的全部内容(以 ssh-ed25519 开头,以邮箱结尾)。

第三步:添加到 GitHub

  1. 登录 GitHub,点击右上角头像 → Settings

  2. 左侧菜单选择 SSH and GPG keys

  3. 点击 New SSH Key

  4. 标题随便写(比如“我的电脑”),把公钥粘贴到 Key 框中

  5. 点击 Add SSH Key

第四步:测试连接

bash

ssh -T git@github.com

如果看到 Hi 用户名! You've successfully authenticated...,就说明配置成功了。

三、Git 核心工作流程

3.1 基本概念

在学习命令之前,先理解 Git 的三个核心区域:

区域说明类比
工作区你电脑上正在编辑的文件你的草稿纸
暂存区准备提交的修改清单你列好的待办事项
本地仓库已经记录到 Git 历史中的版本正式存档

对应的三个核心命令:

bash

git add .      # 把修改放入暂存区
git commit -m "说明"  # 把暂存区的内容存入本地仓库
git push       # 把本地仓库推送到 GitHub

四、常见操作场景

4.1 场景一:从 GitHub 拉取别人的代码

如果你想参与别人的开源项目,或者把自己 GitHub 上的仓库下载到本地:

bash

git clone 仓库地址

如何获取仓库地址:在 GitHub 仓库页面,点击绿色的 Code 按钮,会看到两种地址:

  • HTTPS:https://github.com/用户名/仓库名.git(需要输入账号密码/Token)

  • SSH:git@github.com:用户名/仓库名.git(如果已配置 SSH 免密,用这个更方便)

如果要下载特定的分支:

bash

git clone -b 分支名 仓库地址

4.2 场景二:从零开始创建项目并上传

第一步:在 GitHub 上新建仓库

  1. 登录 GitHub,点击右上角的 “+” → New repository

  2. 填写仓库名称(Repository name),比如 my-first-project

  3. 选择 Public(公开)或 Private(私有)

  4. 不要勾选“Initialize this repository with a README”(否则后面会冲突)

  5. 点击 Create repository

第二步:在本地初始化 Git 仓库

进入你的项目文件夹:

bash

cd 项目文件夹路径
git init   # 把这个文件夹变成 Git 仓库

第三步:添加并提交文件

bash

git add .              # 把所有文件加入暂存区
git commit -m "first commit"  # 提交到本地仓库

第四步:关联远程仓库并推送

bash

git remote add origin 你的仓库地址  # 关联 GitHub 上的空仓库
git branch -M main                 # 确保分支名为 main
git push -u origin main            # 首次推送(-u 会建立追踪关系)

第一次使用 HTTPS 方式推送时,会弹出登录窗口,输入 GitHub 用户名和密码(密码需要换成 Personal Access Token)。

第五步:之后的日常操作

bash

git add .
git commit -m "更新说明"
git push

4.3 场景三:修改代码后提交

当你修改了代码,想要提交新版本:

bash

# 查看当前状态——哪些文件被修改了
git status

# 添加指定文件
git add 文件名        # 只添加某个文件
git add .            # 添加当前目录所有修改

# 提交
git commit -m "这次修改了什么"

# 推送到 GitHub
git push

4.4 场景四:拉取远程最新的更新

如果多人协作,别人已经在 GitHub 上更新了代码,你需要把最新版本同步到本地:

bash

git pull

这条命令等价于 git fetch + git merge。它会从远程拉取最新代码,并自动合并到你当前的分支。如果出现冲突,需要手动解决后再提交。

五、分支与 Pull Request——协作的核心

5.1 什么是分支

每个仓库默认有一个主分支叫 main(老项目叫 master)。对于多人协作的项目,直接在 main 上改代码是很危险的。分支解决了这个问题——相当于给代码库创建了一个独立的“副本”,你在副本上开发新功能,不会影响主代码的稳定性。

bash

# 查看所有本地分支(当前分支会带 * 号)
git branch

# 创建新分支
git branch 新分支名

# 切换到新分支
git checkout 新分支名

# 更推荐的做法:创建并切换到新分支(一步到位)
git checkout -b 新分支名

在新分支上做完修改后:

bash

git add .
git commit -m "功能说明"
git push origin 新分支名   # 把新分支推送到 GitHub

5.2 什么是 Pull Request

Push 是从本地推送到远程。Pull Request 则是向项目维护者“申请”把你的修改合并到主分支。很多人听到“Pull Request”这个名称可能第一反应是“拉取请求”,但在实践中,它更像是“请求对方拉取我的代码并合并”。

操作流程:

  1. 你把新分支推送到 GitHub

  2. 在 GitHub 仓库页面上,会看到一个 “Compare & pull request” 按钮

  3. 点击后填写 PR 标题和说明,描述你改了哪些东西

  4. 提交 PR,等待项目维护者审核

  5. 审核通过后,代码会被合并到主分支

PR 是代码审查的标准流程,也是开源协作的核心方式。

六、新手常见问题与避坑

6.1 推送时提示身份验证失败

现象:

text

fatal: Authentication failed for 'https://github.com/...'

原因与解决方案:

  • HTTPS 方式需要 Token:GitHub 已于 2021 年 8 月 13 日起禁用密码认证,需使用 Personal Access Token 替代密码。在 GitHub Settings → Developer settings → Personal access tokens → Tokens (classic) 生成一个新 Token,复制后,推送时在密码框粘贴 Token 即可。

  • 建议配置 SSH:一劳永逸解决认证问题,见 2.4 节。

6.2 提交了不该提交的文件

现象:不小心把 node_modules、.env 密码文件或临时文件提交上去了。

解决方案:

  1. 在项目根目录创建 .gitignore 文件

  2. 把不想提交的文件名或目录写进去:

text

node_modules/
.env
*.log
.DS_Store
  1. 执行 git rm -r --cached . 清除所有已跟踪内容,再重新添加并提交

GitHub 官方维护了一个 .gitignore 模板库,针对不同编程语言和框架提供了现成的 .gitignore 文件。新手可以参考这些模板,避免遗漏常见需要忽略的文件类型。

6.3 忘记先 pull,推送时提示冲突

现象:

text

error: failed to push some refs to '...'
hint: Updates were rejected because the remote contains work...

解决步骤:

  1. 先拉取最新代码:git pull

  2. 如果有冲突,手动解决冲突(Git 会在冲突文件里标注 <<<<<<< 和 >>>>>>>)

  3. 解决后重新提交:git add . → git commit -m "合并冲突" → git push

6.4 提交信息写错了想改

如果只是想修改上一次提交的说明:

bash

git commit --amend -m "新的提交信息"

如果已经推送到了远程,需要强制推送(慎用,团队项目中不建议):

bash

git push --force-with-lease

6.5 合并冲突的通用解决思路

当你执行 git pull 或合并分支时,如果同一个文件的同一行被不同的人修改过,Git 无法自动决定保留哪个版本,就会标记为冲突。标记格式如下:

text

<<<<<<< HEAD
你本地的代码
=======
远程分支的代码
>>>>>>> branch-name

解决方法是:手动编辑文件,保留你需要的那部分(或者综合两者),删掉 <<<<<<<、======= 和 >>>>>>> 标记,然后重新提交。

七、新手建议

7.1 先从图形化工具开始

新手可能被命令行吓到。GitHub 官方提供了 GitHub Desktop,界面直观,适合刚开始接触 Git 的开发者。理解基本概念后,再逐步过渡到命令行。VS Code 等主流编辑器也内置了 Git 图形化操作。

7.2 README 好好写

每个仓库最好都有一个 README.md 文件,用 Markdown 语法写清楚:

  • 项目是做什么的

  • 怎么安装和运行

  • 怎么使用

一个清晰的 README 会让人更愿意使用和参与你的项目。

7.3 开源许可证要选

如果你的仓库是公开的,建议添加一个 LICENSE 文件,说明别人可以怎么使用你的代码。如果不选许可证,法律上默认“保留所有权利”,别人不能随意使用你的代码。

常见许可证:

  • MIT:最宽松,随便用,随便改

  • Apache 2.0:MIT 基础上增加了专利授权

  • GPL:要求衍生代码也开源

7.4 多用“搜索”和“看别人怎么写”

GitHub 上有数百万开源项目,遇到问题时:

  • 搜别人写的优秀仓库,看看他们的代码结构

  • 搜索 .gitignore 模板,避免自己从头想

  • 看别人的 README.md 怎么写

这是新手成长最快的方式。

八、常用命令速查表

操作命令
初始化仓库git init
克隆仓库git clone 地址
查看状态git status
添加文件git add . 或 git add 文件名
提交git commit -m "说明"
推送git push
拉取更新git pull
查看分支git branch
创建并切换分支git checkout -b 新分支名
切换分支git checkout 分支名
查看提交历史git log
查看远程仓库git remote -v

九、最后

新手入门 GitHub,记住三件事就够了:

  1. 先理解 Git 的三个区域:工作区 → 暂存区 → 本地仓库 → 远程仓库

  2. 记住三个核心命令:git add → git commit → git push

  3. 遇到问题先搜:Git 的错误提示已经非常成熟,把报错信息复制到搜索引擎,大概率能找到答案

一步一步来,Git 就会成为你工作中离不开的工具。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐