一、Git是什么?为什么要学Git?¶
简单来说,Git是一款版本控制系统,就像一个“文件历史记录器”,可以帮你:
- 记录文件的每一次修改,随时回溯到过去的版本;
- 多人协作时,避免代码冲突,方便合并不同人的修改;
- 保存项目的不同“状态”(比如开发新功能时的“分支”),不影响主项目。
场景举例:你写了一篇论文,担心修改后出错想回到原来的版本,Git就能帮你轻松恢复;团队合作时,你改A的代码,同事改B的代码,Git能自动合并,而不是让两人的修改“打架”。
二、安装与配置Git¶
1. 安装Git¶
- Windows:去官网(https://git-scm.com/)下载对应系统的安装包,一路“下一步”即可。
- Mac:如果没安装过Homebrew,先打开终端,运行
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)",然后用brew install git安装。 - Linux:Ubuntu/Debian用
sudo apt install git,CentOS用sudo yum install git。
安装完成后,打开终端(Windows用“Git Bash”或“命令提示符”),输入 git --version,如果显示版本号(比如 git version 2.40.1),说明安装成功!
2. 配置Git身份¶
每次提交代码时,Git会记录你的身份(名字和邮箱),就像“签名”。先配置全局身份(所有仓库通用):
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
如果想只针对某个仓库用不同身份,进入仓库目录后,去掉 --global 即可:
git config user.name "仓库专属名"
git config user.email "仓库专属邮箱"
三、本地仓库:从“0”到“1”创建项目¶
1. 初始化仓库¶
先在电脑上新建一个文件夹(比如叫 my-first-git-project),然后进入文件夹,用Git初始化它:
# 进入文件夹(假设Windows在D盘,Mac/Linux在当前目录)
cd D:/my-first-git-project
# 初始化仓库
git init
执行后,文件夹里会多出一个隐藏的 .git 文件夹,这就是Git仓库的“核心数据”,此时你的项目已经是一个Git仓库了!
2. 添加文件并提交¶
现在在 my-first-git-project 里新建一个文件(比如 index.html),写点内容(比如 <h1>Hello Git!</h1>)。
- 第一步:把文件“暂存”到Git的“准备区”
用git add命令把文件加入“暂存区”(相当于“告诉Git:我要提交这个文件”):
# 添加单个文件
git add index.html
# 如果有多个文件,也可以用 . 表示添加所有文件
git add .
- 第二步:提交到本地仓库
暂存后,用git commit把暂存区的文件提交到本地仓库,记得加个描述信息(-m参数):
git commit -m "第一次提交:新建index.html文件"
这里 -m 后面的引号里是“提交备注”,要清晰说明改了什么(比如“修复bug”“新增功能”),方便自己和别人看懂历史。
3. 查看仓库状态与历史¶
- 查看文件状态:随时用
git status看仓库里哪些文件被修改、新增或删除了(红色表示未暂存,绿色表示已暂存)。 - 查看提交历史:用
git log可以看到所有提交记录,按q退出:
git log
四、分支管理:多人协作的“安全区”¶
项目开发中,直接在主分支改代码容易出错,所以Git提供“分支”功能(类似“平行宇宙”)。
1. 创建并切换分支¶
- 创建分支:比如开发新功能时,从主分支
master分出一个dev分支:
git branch dev # 创建dev分支
- 切换分支:用
git checkout进入dev分支:
git checkout dev
(注:旧版本Git可能用 git checkout -b dev 直接创建并切换分支)
2. 修改与合并分支¶
在 dev 分支里改文件,再提交(和之前的操作一样:git add . + git commit -m "修改了dev分支的功能")。
完成后,想把 dev 分支的修改合并到 master 主分支:
# 先切换回master分支
git checkout master
# 合并dev分支到master
git merge dev
合并后,主分支 master 就包含了 dev 分支的修改。如果合并时提示“冲突”,说明两个分支对同一文件改了不同内容,需要手动打开文件解决冲突(简单来说,Git会标红冲突内容,你要选择保留哪部分代码)。
五、远程仓库:把项目“上云”(协作与部署基础)¶
前面都是本地操作,要实现多人协作或部署到服务器,需要把仓库放到远程仓库(比如GitHub、Gitee)。
1. 远程仓库准备¶
- 注册平台:推荐GitHub(全球最大)或Gitee(国内,访问快),注册账号后,在平台上点击“新建仓库”,比如起名为
my-first-git-project,记住仓库地址(比如https://github.com/你的用户名/my-first-git-project.git)。
2. 本地仓库关联远程仓库¶
假设你已经在本地创建了项目并做了几次提交,现在要把它推到远程:
# 关联远程仓库(origin是远程仓库的默认别名,可改)
git remote add origin https://github.com/你的用户名/my-first-git-project.git
# 第一次推送:把本地master分支推到远程master
git push -u origin master
# 后续推送可以直接省略origin master
git push
如果是克隆远程仓库(比如从GitHub把别人的项目拉到本地),直接用 git clone:
git clone https://github.com/你的用户名/my-first-git-project.git
六、部署项目:从远程仓库到线上¶
部署就是把项目“放到服务器”让人访问,这里以最常见的静态网站部署(如HTML/CSS/JS)为例:
1. 从远程仓库拉取代码到服务器¶
如果你的服务器上没有项目,先拉取远程仓库代码:
# 克隆远程仓库到服务器
git clone https://github.com/你的用户名/my-first-git-project.git
# 进入项目目录,安装依赖(如果是Node.js项目,比如Vue/React)
cd my-first-git-project
npm install
# 构建项目(比如前端项目)
npm run build
2. 用服务器工具部署¶
- 简单静态网站:把
build目录下的文件放到Nginx的静态目录(如/var/www/html),配置Nginx指向该目录即可。 - 动态项目(如Node.js):用
pm2启动Node进程(pm2 start app.js),再配置Nginx反向代理到localhost:3000(假设Node服务在3000端口)。
七、常用Git命令速查表¶
| 命令 | 作用 |
|---|---|
git init |
初始化新仓库 |
git add <文件> |
将文件加入暂存区(可加 . 表示全部) |
git commit -m "备注" |
提交暂存区到本地仓库,加备注 |
git status |
查看仓库状态(新增/修改/删除文件) |
git log |
查看提交历史 |
git branch |
查看所有分支 |
git checkout <分支名> |
切换分支 |
git branch <分支名> |
创建分支 |
git merge <分支名> |
合并分支到当前分支 |
git remote add origin <地址> |
关联远程仓库地址 |
git push origin <分支> |
推送本地分支到远程 |
git pull origin <分支> |
拉取远程分支到本地 |
git clone <地址> |
克隆远程仓库到本地 |
总结¶
Git的核心是“版本控制”和“协作”,从本地仓库的创建、提交,到分支管理,再到远程仓库的同步,最后部署上线,这是一个完整的流程。初学者不用一开始记住所有命令,先掌握“创建仓库→提交→推到远程→部署”的基础流程,后续再逐步深入学习分支冲突解决、标签管理等高级操作。动手练习几次,很快就能熟练使用Git啦!