一、先搞清楚两个概念: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编程工具,助力开发者即刻编程。

更多推荐