Notes · 2025.07.06

Git 使用指南

工作区、暂存、提交。给自己和同学用的短手册。

5 min · git · tools

Git 使用笔记

一、Git 核心概念

1. 仓库结构

  • 工作区 (Working Tree):当前操作的文件目录。
  • 暂存区 (Staging Area):存放已暂存修改的文件(通过 git add)。
  • 版本库 (Repository):存储所有提交的历史版本(通过 git commit)。

2. 版本创建流程

  1. 工作区修改 → 暂存区
    • 使用命令:git add <文件/目录>,如 git add . 或 git add README.md,将文件添加到暂存区。
  2. 暂存区 → 版本库
    • 使用命令:git commit -m "版本描述",提交暂存区的修改并生成一个新版本。

3. 仓库同步操作

  • 推送到远程仓库:git push
  • 拉取远程仓库更新:git pull
  • 克隆远程仓库到本地:git clone <仓库地址>
  • 记得末尾的.git

二、远程仓库操作

1. 配置 SSH 密钥(免密推送)(这个可以之间看Gitee或者Github上有写)

  • 生成密钥:ssh-keygen -t rsa -b 4096 -C "xxx@email.com"
  • 查看公钥:cat ~/.ssh/id_rsa.pub
  • 测试连接:ssh -T git@gitee.com (如成功提示“Welcome to Gitee.com, YourName!”)

2. 关联远程仓库(推荐先用vscode登录Github账号后再连接就不需要每次推送都输入密钥)

  • 查看当前关联的远程地址:git remote -v
  • 设置远程地址:git remote add origin <远程仓库URL>
  • 修改远程地址:git remote set-url origin <新URL>

3. 克隆远程仓库到本地

  • 使用 git clone 命令从远程仓库获取代码: git clone <远程仓库URL> <目标目录>目标目录>远程仓库URL>

4. 推送与拉取

  • 第一次推送并设置上游分支:git push -u origin master
  • 后续推送:git push
  • 拉取远程更新:git pull

三、常用命令行操作

1. 目录管理

  • 创建单级目录:mkdir myfolder(感觉New-Item更加好用一点)
  • 递归创建多级目录(Linux/macOS):mkdir -p a/b/c
    • 注意:PowerShell 不支持 -p 参数,需逐级创建。
  • 创建文件:
    • PowerShell:New-Item -Path "filename.txt" -ItemType File
    • Bash:echo "" > filename.txt(创建空文件)

2. Git 分支操作

  • 切换分支:git checkout <branch-name>
  • 创建新分支并切换:git checkout -b <branch-name>

四、关键注意事项

  • 权限问题:推送和拉取操作需要有远程仓库的读写权限。对于私有项目,需配置 SSH 或使用账号密码。(见二、2.)
  • PowerShell 特性:
    • mkdir 不支持 -p 参数,需要逐级创建目录。
    • 使用 echo > filename 时,可能会出现“等待输入状态”,直接按回车即可。

五、操作流程图解

工作区 → (git add) → 暂存区 → (git commit) → 版本库 → (git push) → 远程仓库
↑ |
└─── (git pull) ───────┘

六、整理建议

  • 初次使用 Git 时,优先配置 SSH 密钥。
  • 修改文件后,严格按照 add → commit → push 流程操作。
  • 在 Linux 终端中创建多级目录时可以使用 mkdir -p,更为简便。

**选读*

Git 高阶使用笔记

一、分支管理(Branch)

1. 创建和切换分支

创建并切换到新分支

git checkout -b dev

切换到已有分支

git checkout master

2. 查看分支

git branch 查看本地分支

git branch -r 查看远程分支

git branch -a 查看所有分支(本地 + 远程)

3. 删除分支

git branch -d dev 删除本地分支(已合并)

git branch -D dev 强制删除本地分支

git push origin --delete dev 删除远程分支

4. 分支合并

在 master 分支下合并 dev

git checkout master git merge dev

5. 分支与远程关联

将本地分支与远程同名分支建立关联

git push -u origin dev

二、版本回退与撤销

1. 查看提交记录

git log 查看提交历史

git log --oneline 简洁显示历史记录

git log --graph 可视化分支结构

2. 回退到上一个提交

git reset --hard HEAD^ 回退一个版本

git reset --hard <commit-id> 回退到指定提交

3. 撤销 add

git reset HEAD <file> 把文件从暂存区移出工作区

4. 撤销修改

git checkout -- <file> 放弃工作区的修改

下面的没写完,不想写了

三、标签(Tag)

git tag v1.0 创建标签 git tag -a v1.0 -m “说明” 带注释标签

git push origin v1.0 git push origin –tags # 推送所有标签

git tag -d v1.0 git push origin :refs/tags/v1.0 # 删除远程标签

四、忽略文件配置(.gitignore) .gitignore 文件用于指定 Git 在提交时应忽略的文件和目录。

示例: gitignore 复制 编辑

忽略 node_modules 文件夹

node_modules/

忽略所有 .log 文件

*.log

忽略所有 dist 文件夹

dist/

忽略所有临时文件

*.tmp 五、Git Stash(临时存储)

  1. 保存当前修改 bash 复制 编辑 git stash # 保存未提交的修改 git stash save “描述” # 带描述地保存
  2. 查看和恢复 bash 复制 编辑 git stash list # 查看所有 stash git stash apply # 应用最近一次的 stash git stash pop # 应用并删除最近的 stash git stash apply stash@{1} # 应用指定 stash 六、解决冲突 当多个分支合并时若有文件内容冲突:

Git 会标记冲突位置(«««<、=======、»»»>)

手动编辑文件解决冲突

重新添加到暂存区并提交:

bash 复制 编辑 git add <冲突文件> git commit -m "解决合并冲突" 七、Git 常用配置命令 bash 复制 编辑冲突文件>

配置用户名和邮箱(提交作者)

git config –global user.name “Your Name” git config –global user.email “you@example.com”

查看配置信息

git config –list

设置默认编辑器

git config –global core.editor “code –wait” # VSCode

设置默认分支名称(Git 2.28+)

git config –global init.defaultBranch main 八、Git 状态和差异 bash 复制 编辑 git status # 查看当前文件状态 git diff # 比较工作区与暂存区差异 git diff –cached # 比较暂存区与版本库的差异 git diff HEAD # 比较工作区与最新提交的差异 九、Git 清理操作 bash 复制 编辑

清除未追踪文件(慎用)

git clean -f

清除未追踪文件和目录

git clean -fd

清除 .gitignore 中忽略的文件

git clean -fx 十、工作流建议 每个新功能或修复新建分支开发,避免在 master 或 main 上直接开发。

常用分支命名规范:

feature/功能名

bugfix/问题修复

hotfix/紧急修复

release/版本发布

提交信息清晰简洁,如:

makefile 复制 编辑 feat: 新增注册功能 fix: 修复登录页空白问题 refactor: 重构请求逻辑 十一、附录:Git 提交信息规范(Angular 风格) 类型 说明 feat 新功能 fix 修复 bug docs 文档修改 style 格式修改,不影响功能 refactor 重构代码 test 添加测试 chore 构建流程、工具等辅助修改