Git 基础操作指令笔记

本文档整理了 Git 日常使用中最核心的基础指令,按「环境配置→仓库操作→文件管理→分支操作→远程交互→撤销回退」分类,附带作用说明和示例,方便快速查阅。

一、环境配置(首次安装后必做)

Git 安装后需配置用户名和邮箱,用于标识提交者身份(全球唯一,建议与远程仓库平台一致)。

指令作用示例
git config --global user.name "用户名"配置全局用户名git config --global user.name "ZhangSan"
git config --global user.email "邮箱"配置全局邮箱git config --global user.email "zhangsan@xxx.com"
git config --list查看当前 Git 配置git config --list(可验证用户名/邮箱是否生效)
git config user.name单独查看用户名git config user.name

二、仓库操作(初始化/克隆)

仓库是 Git 管理代码的核心载体,分为「本地仓库」和「远程仓库」(如 GitHub/GitLab)。

1. 初始化本地仓库(从无到有创建)

在本地文件夹中初始化 Git 仓库,生成隐藏的 .git 目录(存储仓库配置和版本信息)。

# 1. 进入目标文件夹(先通过 cd 指令切换路径)
cd /Users/zhangsan/Desktop/my-project

# 2. 初始化 Git 仓库
git init

执行后,文件夹会被标记为「Git 仓库」,可开始跟踪文件。

2. 克隆远程仓库(从远程下载到本地)

将远程仓库(如 GitHub 上的项目)完整下载到本地,自动关联远程仓库地址。

# 格式:git clone 远程仓库地址(HTTPS 或 SSH 链接)
git clone https://github.com/zhangsan/my-project.git  # HTTPS 链接(需输密码/Token)
git clone git@github.com:zhangsan/my-project.git      # SSH 链接(需提前配置 SSH 密钥)

克隆后会自动生成与仓库名一致的文件夹,进入该文件夹即可操作。

三、文件状态管理(核心日常操作)

Git 中文件有 3 种核心状态:工作区(修改后未暂存)→暂存区(已暂存待提交)→本地仓库(已提交版本),以下指令用于状态切换。

1. 查看文件状态

git status  # 查看当前仓库中所有文件的状态(未跟踪/已修改/已暂存)
# 示例输出:
# Untracked files: 未跟踪文件(红色)
# Changes to be committed: 已暂存文件(绿色)

2. 工作区 → 暂存区(git add

将工作区的修改(新增/修改文件)添加到「暂存区」,为提交做准备。

git add 文件名          # 添加单个文件到暂存区
git add 文件名1 文件名2 # 添加多个文件到暂存区
git add ./             # 添加当前目录下所有修改(包括子目录)
git add *.txt          # 添加所有 .txt 后缀的文件(通配符)

3. 暂存区 → 本地仓库(git commit

将暂存区的修改提交到「本地仓库」,生成一个新的版本(每个提交有唯一的 commit-id)。
必须写提交信息,描述本次修改的内容(方便后续回溯)。

# 基础用法:-m 后接提交信息(英文引号,简洁明了)
git commit -m "feat: 新增用户登录功能"

# 进阶:若已暂存,想修改最后一次提交(避免多一个无用提交)
git commit --amend  # 会打开编辑器,修改原提交信息(仅本地未推远程时用)

4. 撤销暂存区修改(git reset HEAD

若误将文件加入暂存区,可撤销回「工作区」(文件修改不会丢失)。

git reset HEAD 文件名  # 撤销单个文件的暂存
git reset HEAD ./      # 撤销当前目录下所有文件的暂存

四、分支操作(Git 核心特性)

分支可理解为「平行的开发线」,用于隔离功能开发(如开发新功能、修复 Bug),避免影响主分支(如 main/master)。

1. 查看分支

git branch          # 查看本地所有分支(当前分支前有 * 标记)
git branch -r       # 查看远程所有分支
git branch -a       # 查看本地+远程所有分支

2. 创建/切换分支

# 1. 创建分支(仅创建,不切换)
git branch 分支名    # 示例:git branch dev(创建 dev 分支)

# 2. 切换分支(Git 2.23+ 推荐用 switch,更直观)
git switch 分支名    # 示例:git switch dev(切换到 dev 分支)
git checkout 分支名  # 旧版切换指令(功能相同,也可用于恢复文件)

# 3. 创建并立即切换分支(常用!)
git switch -c 分支名 # 示例:git switch -c bugfix/login(创建并切换到修复登录 Bug 的分支)
git checkout -b 分支名 # 旧版指令

3. 合并分支

将指定分支的修改合并到「当前分支」(如开发完 dev 分支,合并到 main)。

# 示例:将 dev 分支合并到 main 分支
1. 先切换到 main 分支:git switch main
2. 执行合并:git merge dev
  • 若合并无冲突,直接完成;
  • 若有冲突(同一文件同一处修改),需手动修改冲突文件,再执行 git add + git commit 完成合并。

4. 删除分支

git branch -d 分支名  # 安全删除(仅删除已合并到主分支的分支,避免误删未合并代码)
git branch -D 分支名  # 强制删除(无论是否合并,慎用!)

五、远程仓库交互(与 GitHub/GitLab 同步)

本地仓库需与远程仓库同步(拉取更新、推送代码),核心指令如下。

1. 查看远程仓库关联

git remote -v  # 查看当前仓库关联的所有远程仓库(显示名称和地址)
# 示例输出:
# origin  git@github.com:zhangsan/my-project.git (fetch)
# origin  git@github.com:zhangsan/my-project.git (push)
# (origin 是默认的远程仓库名称,可自定义)

2. 关联远程仓库(本地仓库首次关联远程)

若本地仓库是 git init 创建的,需手动关联远程仓库:

git remote add 远程仓库名 远程仓库地址
# 示例:git remote add origin git@github.com:zhangsan/my-project.git

3. 拉取远程代码(git pull

将远程仓库的最新代码拉取到本地,并合并到当前分支(避免推送时冲突)。

git pull 远程仓库名 分支名  # 完整写法:示例 git pull origin main
git pull                  # 简化写法(当前分支已关联远程分支时,默认拉取对应远程分支)

4. 推送本地代码(git push

将本地仓库的提交推送到远程仓库(首次推送需设置上游分支)。

# 1. 首次推送分支(设置本地分支与远程分支关联,后续可简化)
git push -u 远程仓库名 本地分支名
# 示例:git push -u origin main(将本地 main 分支推到远程 origin,同时关联)

# 2. 后续推送(已关联后,直接执行)
git push

5. 删除远程分支

git push 远程仓库名 --delete 远程分支名
# 示例:git push origin --delete dev(删除远程 origin 的 dev 分支)

六、撤销与回退(修复错误操作)

1. 撤销工作区修改(文件未暂存)

若修改了文件但未执行 git add,想恢复到「最近一次提交/暂存」的状态(修改会丢失,谨慎!):

git checkout -- 文件名  # 示例:git checkout -- index.html(恢复 index.html 文件)
git restore 文件名      # Git 2.23+ 推荐指令(功能相同,更直观)

2. 回退本地提交(已提交到本地仓库)

若提交后发现错误,需回退到之前的版本(通过 git log 查看历史提交的 commit-id)。

# 1. 查看提交历史(获取目标版本的 commit-id,前 7 位即可)
git log          # 详细历史(按 q 退出查看)
git log --oneline # 简化历史(一行显示,含 commit-id 和提交信息)
# 示例输出:a1b2c3d (HEAD -> main) feat: 新增登录页

# 2. 回退到指定版本(--hard 表示彻底覆盖工作区和暂存区,谨慎!)
git reset --hard 目标commit-id
# 示例:git reset --hard a1b2c3d(回退到 a1b2c3d 这个版本)

# 3. 回退到上一个版本(简化写法,^ 表示上一个,^^ 表示上上个)
git reset --hard HEAD^

⚠️ 注意:git reset --hard 会删除「目标版本之后的所有修改」,若有未提交的代码,需先备份。

七、常用指令速查表

场景指令示例
初始化本地仓库git initcd 文件夹 && git init
克隆远程仓库git clone 地址git clone https://xxx.git
查看文件状态git statusgit status
暂存文件git add 文件名git add ./(暂存所有)
提交文件git commit -m "信息"git commit -m "fix: 修复登录bug"
查看分支git branchgit branch -a(本地+远程)
创建并切换分支git switch -c 分支名git switch -c dev
合并分支git merge 分支名git switch main && git merge dev
拉取远程代码git pullgit pull origin main
推送代码git push首次:git push -u origin main
回退上一版本git reset --hard HEAD^git reset --hard HEAD^

八、注意事项

  1. 提交信息规范:建议遵循「类型: 描述」格式(如 feat: 新增功能fix: 修复bugdocs: 更新文档),方便团队协作和历史追溯。
  2. 分支命名规范:如 dev-功能名bugfix-问题描述release-版本号,避免混乱。
  3. 推送前先拉取:每次 git push 前先执行 git pull,同步远程最新代码,减少冲突。
  4. 慎用 --hardgit reset --hard 会永久删除未提交的修改,操作前确保代码已备份。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值