一、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啦!

小夜