目录
-
(图片来源网络,侵删)- 1 注册 GitHub 账号
- 2 安装 Git
- 3 验证安装与初始配置
-
- 1 什么是版本控制?
- 2 什么是 Git?
- 3 工作区、暂存区 和仓库
-
- 1 创建仓库
- 2 查看仓库状态
- 3 添加文件到暂存区
- 4 提交更改
- 5 查看历史记录
- 6 查看提交差异
-
- 1 什么是分支?
- 2 创建和切换分支
- 3 合并分支
- 4 删除分支
-
(图片来源网络,侵删)- 1 SSH Key 配置(推荐)
- 2 关联远程仓库
- 3 推送本地代码到 GitHub
- 4 从 GitHub 拉取远程代码
- 5 克隆远程仓库
-
- 1 修改并提交代码
- 2 协作工作流:Fork & Pull Request
- 3 解决冲突
-
- 1 Git GUI (官方自带)
- 2 SourceTree (免费强大)
- 3 VS Code 集成
第一部分:准备工作
1 注册 GitHub 账号
GitHub 是一个基于 Git 的代码托管平台,也是开发者协作的中心。

- 打开浏览器,访问 GitHub 官网。
- 点击右上角的 "Sign up" 按钮。
- 按照提示填写用户名、邮箱和密码。注意:邮箱最好使用 Gmail、Outlook 等常用邮箱,后续很多通知会通过邮件发送。
- 验证邮箱,完成注册。
2 安装 Git
Git 是一个命令行工具,我们需要先把它安装到 Windows 上。
- 访问 Git 官方下载页面:https://git-scm.com/download/win
- 点击 "64-bit Git for Windows Setup" 下载安装程序。
- 运行安装程序,一路点击 "Next" 即可,Git for Windows 的安装程序非常智能,默认选项已经能满足绝大多数需求。
- 它会自动将 Git 添加到系统环境变量
PATH中,这样你就可以在任何地方打开命令行使用git命令了。 - 它还会自带一个名为 "Git Bash" 的终端,这是一个模拟 Linux 命令行的工具,比 Windows 自带的 CMD 更好用。
- 它会自动将 Git 添加到系统环境变量
3 验证安装与初始配置
安装完成后,我们需要进行一些基本配置。
-
验证安装:
- 打开开始菜单,搜索并打开 "Git Bash"(推荐使用)或 "CMD" / "PowerShell"。
- 在终端中输入以下命令:
git --version
- 如果看到类似
git version 2.x.x的输出,说明安装成功。
-
设置用户信息:
-
Git 需要知道你是谁,这样在提交代码时才能记录作者信息,在终端中执行以下命令(请将引号内的内容替换成你自己的信息):
# 设置你的用户名,会显示在 GitHub 上 git config --global user.name "你的 GitHub 用户名" # 设置你的邮箱,必须是你注册 GitHub 时使用的邮箱 git config --global user.email "你的邮箱地址"
-
你可以通过以下命令查看所有全局配置:
git config --list
-
第二部分:核心概念理解
1 什么是版本控制?
想象一下你在写一篇论文,每次修改后都手动保存一个副本(如 论文_v1.docx, 论文_v2.docx...),很快你的桌面就会混乱不堪,而且很难找到某个特定版本的修改。版本控制 就是帮你管理这些文件历史记录的工具,你可以轻松地回溯到任何一个历史版本。
2 什么是 Git?
Git 是目前最流行、最强大的分布式版本控制系统,由 Linux 之父 Linus Torvalds 创建。
- 分布式:意味着每个人的电脑上都有一个完整的仓库(包括完整的历史记录),而不像 SVN 那样依赖中央服务器,这使得离线工作、速度更快、协作更安全。
- 核心思想:通过 快照 的方式记录文件状态,而不是记录差异,这使得 Git 在处理文件和分支时非常高效。
3 工作区、暂存区 和仓库
理解这三个概念是掌握 Git 的关键。
- 工作区:你电脑上能看到的目录,是你当前工作的区域。
- 暂存区:也叫 "Index" 或 "Staging Area",它是一个介于工作区和仓库之间的中间区域,你可以把文件从工作区“添加”到暂存区,表示“这些更改我准备提交了”。
- 仓库:Git 仓库包含两个部分:
- Git 目录:存放 Git 用来管理项目元数据和对象文件的地方,这是 Git 最重要的部分,从其他计算机克隆仓库时,复制的就是这里的数据。
- 工作区:和 Git 目录平级,是你看到和编辑文件的地方。
简单流程:工作区 -> git add -> 暂存区 -> git commit -> 仓库
第三部分:Git 基础操作(本地)
我们将在本地进行所有操作,不涉及网络。
-
准备工作:在桌面或任意位置创建一个名为
my-project的文件夹,并在里面创建一个readme.txt文件,内容写上 "Hello, Git!"。 -
打开 Git Bash:进入
my-project文件夹,最简单的方法是在文件夹地址栏输入cmd或powershell然后回车,或者直接在文件夹里右键选择 "Git Bash Here"。
1 创建仓库
在 my-project 目录下,执行以下命令:
# 初始化一个 Git 仓库 git init
执行后,你会看到目录下多了一个隐藏的 .git 文件夹,这就是 Git 仓库的标志,千万不要手动修改或删除它里面的任何文件。
2 查看仓库状态
这是你最常用的命令之一,它会告诉你工作区的文件状态。
git status
初次执行,你会看到类似输出:
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
readme.txt
nothing added to commit but untracked files present (use "git add" to track)
Untracked files:表示readme.txt是一个未被 Git 追踪的新文件。
3 添加文件到暂存区
将 readme.txt 添加到暂存区。
# 添加单个文件 git add readme.txt # 或者添加所有修改和新增的文件 git add .
再次执行 git status,你会看到 readme.txt 从 "Untracked files" 移到了 "Changes to be committed":
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: readme.txt
readme.txt 已经在暂存区,准备被提交。
4 提交更改
将暂存区的文件永久保存到仓库中。
# -m "提交信息" 是必须的,写一个清晰的描述这次修改做了什么 git commit -m "feat: 添加 readme.txt 文件"
提交成功后,git status,会提示:
On branch master
nothing to commit, working tree clean
这表示工作区是干净的,所有修改都已提交。
5 查看历史记录
查看项目的提交历史。
# 查看简洁的历史记录 git log # 查看更简洁的一行历史记录(推荐) git log --oneline
你会看到你刚刚的提交记录,包括提交哈希(一长串字符)、作者、日期和提交信息。
6 查看提交差异
查看某次提交具体修改了哪些内容。
# 查看最近一次提交的详细修改 git show # 查看最近一次提交的统计信息 git show --stat
第四部分:Git 分支操作
分支是 Git 最强大的功能之一,它允许你独立开发新功能或修复 bug,而不会影响主代码。
1 什么是分支?
分支就像一条平行的时间线,默认情况下,你有一个名为 master 或 main 的主分支,你可以从主分支创建一个新的分支(feature-login),在这个新分支上开发登录功能,开发完成后再合并回主分支。
2 创建和切换分支
-
创建并切换到新分支:
# -b 表示创建新分支,feature-x 是新分支的名字 git checkout -b feature-login
你就在
feature-login分支上了,如果你修改readme.txt并提交,这个修改只会出现在feature-login分支上,master分支不受影响。 -
切换分支:
# 切换回 master 分支 git checkout master
切换后,
readme.txt的内容会自动变回master分支最后一次提交时的样子。
3 合并分支
假设 feature-login 分支的开发已经完成,现在要把它合并到 master 分支。
-
确保你在目标分支上:我们要合并到
master,所以先切换到master。git checkout master
-
执行合并:
# 将 feature-login 分支合并到当前分支 git merge feature-login
Git 会自动将
feature-login的所有更改应用到master分支。
4 删除分支
合并完成后,feature-login 分支就没用了,可以删除它。
# -d 表示安全删除,如果分支未合并会报错 git branch -d feature-login
执行后,feature-login 分支就被永久删除了。
第五部分:与远程仓库交互(GitHub)
我们将本地仓库与 GitHub 上的远程仓库连接起来,实现代码的备份和协作。
1 SSH Key 配置(推荐)
使用 SSH 可以免去每次 push 或 pull 时都输入用户名和密码的麻烦。
-
检查是否已有 SSH Key: 在 Git Bash 中输入:
ls -al ~/.ssh
如果看到
id_rsa和id_rsa.pub文件,说明你已经有了,可以跳到第 4 步。 -
生成新的 SSH Key:
# 将 "your_email@example.com" 替换成你的 GitHub 邮箱 ssh-keygen -t rsa -C "your_email@example.com"
连续按三次回车即可,它会使用默认的文件路径和空密码。
-
复制 SSH Key:
# 复制公钥内容到剪贴板 clip < ~/.ssh/id_rsa.pub
clip命令无效,你可以手动打开C:\Users\你的用户名\.ssh\id_rsa.pub文件,全选并复制所有内容。 -
将 SSH Key 添加到 GitHub:
- 登录你的 GitHub 账号。
- 点击右上角头像 -> Settings。
- 在左侧菜单栏最下方找到并点击 SSH and GPG keys。
- 点击 New SSH key 按钮。
- Title 随便填一个,"My Windows Laptop"。
- Key 粘贴你刚刚复制的
id_rsa.pub文件内容。 - 点击 Add SSH key。
-
测试连接:
ssh -T git@github.com
如果看到
Hi xxx! You've successfully authenticated...的提示,说明配置成功。
2 关联远程仓库
-
在 GitHub 上创建一个新仓库:
- 点击右上角的 "+" 号,选择 "New repository"。
- 填写仓库名称(
my-project),可以勾选 "Add a README file",然后点击 "Create repository"。
-
在本地仓库关联远程仓库:
- 在 GitHub 仓库页面,点击 "Code" 按钮,然后点击 "SSH" 选项卡,复制仓库地址,
git@github.com:你的用户名/my-project.git。 - 在本地的 Git Bash 中,执行以下命令(请将地址替换成你自己的):
# origin 是远程仓库的默认别名 git remote add origin git@github.com:你的用户名/my-project.git
- 在 GitHub 仓库页面,点击 "Code" 按钮,然后点击 "SSH" 选项卡,复制仓库地址,
3 推送本地代码到 GitHub
将本地的 master 分支推送到远程的 master 分支。
# -u 表示 upstream,将本地 master 分支和远程 master 分支关联起来,以后就可以直接用 git push git push -u origin master
首次推送需要输入你 GitHub 的用户名和密码(或者 SSH 密钥的密码),推送成功后,你就可以在 GitHub 上看到你的代码了。
4 从 GitHub 拉取远程代码
当你或你的协作者在 GitHub 上修改了代码,你需要把它们拉取到本地。
# 将远程 origin 仓库的 master 分支拉取到本地 git pull origin master
5 克隆远程仓库
如果你想获取一个已有的远程仓库到本地,使用 git clone。
# 在 GitHub 仓库页面,复制 SSH 地址 git clone git@github.com:别人的用户名/别人的项目.git
这会在当前目录下创建一个与远程仓库同名的文件夹,并自动完成初始化和远程关联。
第六部分:日常使用场景与最佳实践
1 修改并提交代码
这是最常见的日常工作流:
- 修改文件。
git status查看哪些文件被修改了。git add <file>或git add .将修改添加到暂存区。git commit -m "清晰的提交信息"提交。git push origin master将代码推送到远程仓库。
2 协作工作流:Fork & Pull Request
这是 GitHub 协作的标准流程。
-
Fork (分叉):
- 在你想要贡献的开源项目 GitHub 页面,点击右上角的 "Fork" 按钮。
- 这会在你的 GitHub 账号下创建该项目的一个完整副本。
-
Clone (克隆):
- 克隆你自己的 Fork 版本到本地。
git clone git@github.com:你的用户名/别人的项目.git
- 克隆你自己的 Fork 版本到本地。
-
创建分支:
- 不要在
master分支上直接开发!git checkout -b feature-你添加的新功能
- 不要在
-
开发、提交、推送:
- 在新分支上进行开发、提交和推送。
# ... 修改代码 ... git add . git commit -m "feat: 添加了某某新功能" git push origin feature-你添加的新功能
- 在新分支上进行开发、提交和推送。
-
创建 Pull Request (PR):
- 回到 GitHub 上你自己的 Fork 版本页面。
- GitHub 会提示你刚刚的推送,并建议你创建一个 Pull Request。
- 点击 "Compare & pull request"。
- 填写 PR 的标题和描述,说明你做了哪些修改以及为什么。
- 点击 "Create pull request"。
-
代码审查与合并:
项目的原作者会审查你的代码,如果没问题,他会点击 "Merge",将你的代码合并到他的主项目中,这样,你就为项目做出了贡献!
3 解决冲突
当多人修改了同一个文件的同一部分时,git pull 或 git merge 就可能产生冲突。
- 冲突的表现:文件中会出现类似下面的标记:
<<<<<<< HEAD // 这是你的本地代码 ======= // 这是远程仓库的代码 >>>>>>> 远程分支名
- 解决冲突的步骤:
- 手动编辑文件:打开冲突的文件,找到
<<<<<<<和>>>>>>>标记,手动决定保留哪一部分代码,或者将两者合并。 - 删除标记:删除
<<<<<<<, ,>>>>>>>这些行。 - 保存文件。
- 告诉 Git 冲突已解决:
git add <冲突的文件名>
- 完成合并:
git commit
Git 会自动生成一个提交信息,描述这次合并冲突的解决。
- 手动编辑文件:打开冲突的文件,找到
第七部分:常用图形化界面工具
虽然命令行很强大,但图形化界面工具能更直观地展示分支、历史和冲突。
1 Git GUI (官方自带)
安装 Git 时会自带一个简单的图形界面,在开始菜单搜索 "Git GUI" 即可打开。
2 SourceTree (免费强大)
由 Atlassian(Jira, Confluence 的开发商)出品,功能非常全面,深受开发者喜爱。
- 下载地址:https://www.sourcetreeapp.com/
- 它可以帮你可视化地查看历史、创建分支、合并、解决冲突等。
3 VS Code 集成
如果你使用 Visual Studio Code 作为代码编辑器,它内置了非常出色的 Git 集成。
- 左侧活动栏有一个源代码管理图标(像分支的形状)。
- 所有状态、暂存、提交、分支操作都可以通过点击界面完成,非常方便。
第八部分:总结与资源
恭喜你!你已经掌握了 Git 的核心用法,熟能生巧,多加练习是关键。
核心命令速查表
| 命令 | 作用 | 示例 |
|---|---|---|
git init |
初始化仓库 | git init |
git status |
查看仓库状态 | git status |
git add |
添加文件到暂存区 | git add . / git add file.txt |
git commit |
提交暂存区内容 | git commit -m "信息" |
git log |
查看提交历史 | git log --oneline |
git branch |
查看分支 | git branch / git branch -d <name> |
git checkout |
切换分支 | git checkout <name> / git checkout -b <name> |
git merge |
合并分支 | git merge <name> |
git remote |
管理远程仓库 | git remote add origin <url> |
git push |
推送到远程仓库 | git push origin master |
git pull |
从远程拉取 | git pull origin master |
git clone |
克隆远程仓库 | git clone <url> |
推荐学习资源
- Pro Git 书籍:Git 官方免费书籍,内容权威详尽,有中文版。
- Learn Git Branching:通过交互式可视化游戏学习 Git 分支,强烈推荐!
- GitHub Guides:GitHub 官方提供的各种指南。
希望这份教程对你有帮助!如果在实践中遇到问题,善用 git status 和搜索引擎,大部分问题都能找到答案。
