当前位置: 首页 > java >正文

Git 使用笔记

1. 全局配置

在首次使用Git之前,需要配置用户信息,这些信息会在每次提交时使用:

# 配置用户名
git config --global user.name "你的用户名"# 配置邮箱
git config --global user.email "你的邮箱@example.com"# 查看配置信息
git config --list

注意: 这是全局配置,只需要配置一次即可在所有Git仓库中生效。

2. Git核心概念

2.1 三个重要区域

  • 工作区(Working Directory):包含.git文件夹的目录,用于存放项目代码的地方
  • 暂存区(Staging Area):位于.git文件夹中的index文件,临时保存即将提交的文件修改
  • 版本库(Repository):.git隐藏文件夹,存储项目的完整历史记录和配置信息
    重要区域

2.2 文件状态

Git中的文件有以下几种状态:

  • Untracked:未跟踪,新创建的文件
  • Modified:已修改,文件内容发生变化
  • Staged:已暂存,文件已添加到暂存区
  • Committed:已提交,文件已保存到版本库

3. 基本操作命令

3.1 查看状态和日志

# 查看文件状态
git status# 查看详细提交日志
git log# 查看简洁的提交记录
git reflog

3.2 文件操作

# 添加单个文件到暂存区
git add 文件名# 添加所有文件到暂存区
git add .# 提交暂存区文件到版本库
git commit -m "提交说明"# 取消暂存区文件
git reset 文件名# 回退到指定版本
git reset --hard 版本号

3.3 分支操作

# 查看分支
git branch# 创建分支
git branch 分支名# 切换分支
git checkout 分支名# 创建并切换分支
git checkout -b 分支名# 合并分支
git merge 分支名

4. 忽略文件

4.1 .gitignore文件

在项目根目录创建.gitignore文件,用于指定不需要版本控制的文件和目录:

# 忽略编译文件
*.class
*.jar# 忽略临时文件
*.tmp
*.log# 忽略目录
target/
node_modules/# 忽略IDE配置
.idea/
.vscode/

4.2 常见忽略模式

  • *.txt:忽略所有.txt文件
  • !important.txt:不忽略important.txt文件
  • temp/:忽略temp目录
  • /build:只忽略根目录下的build文件

5. 远程仓库操作

在这里插入图片描述

5.1 基本远程操作

# 克隆远程仓库
git clone https://github.com/username/repository.git# 关联远程仓库
git remote add origin https://github.com/username/repository.git# 查看远程仓库信息
git remote -v# 移除远程仓库关联
git remote remove origin

5.2 同步操作

# 推送到远程仓库
git push origin main# 从远程仓库拉取
git pull origin main# 获取远程仓库更新(不自动合并)
git fetch origin

6. 实用技巧

6.1 撤销操作

# 撤销工作区修改
git checkout -- 文件名# 撤销上一次提交
git reset HEAD~1# 修改最近一次提交信息
git commit --amend -m "新的提交信息"

6.2 查看差异

# 查看工作区和暂存区差异
git diff# 查看暂存区和版本库差异
git diff --cached# 查看两个版本间差异
git diff 版本号1 版本号2

7. 最佳实践

  1. 提交频率:经常提交,保持每次提交的改动相对较小
  2. 提交信息:写清晰、有意义的提交信息
  3. 分支使用:为不同功能创建不同分支,避免直接在主分支开发
  4. 代码审查:使用Pull Request进行代码审查
  5. 备份:定期推送到远程仓库进行备份

8. 常见问题解决

8.1 合并冲突

当多人修改同一文件时可能出现冲突:

# 查看冲突文件
git status# 手动解决冲突后
git add 冲突文件
git commit -m "解决冲突"

8.2 误操作恢复

# 恢复删除的文件
git checkout HEAD -- 文件名# 查找丢失的提交
git reflog
git checkout 提交哈希值
http://www.xdnf.cn/news/15278.html

相关文章:

  • 使用Starrocks替换Clickhouse的理由
  • SPSSPRO:数据分析市场SaaS挑战者的战略分析
  • 香港服务器Python自动化巡检脚本开发与邮件告警集成
  • 【Linux】线程机制深度实践:创建、等待、互斥与同步
  • 网络协议学习思维导图
  • python爬取新浪财经网站上行业板块股票信息的代码
  • java进阶(二)+学习笔记
  • 【算法】递归、搜索与回溯
  • Datawhale AI 夏令营2025科大讯飞AI大赛<夏令营:用AI做带货视频评论分析>
  • [Nagios Core] CGI接口 | 状态数据管理.dat | 性能优化
  • jenkins部署前端vue项目使用Docker+Jenkinsfile方式
  • 【星闪】Hi2821 | SDK开发入门,应用启动流程,创建自己的应用
  • 大模型聊天模板
  • 在人工智能自动化编程时代:AI驱动开发和传统软件开发的分析对比
  • AI 助力:如何批量提取 Word 表格字段并导出至 Excel
  • Infoblox NetMRI 远程命令执行漏洞复现(CVE-2025-32813)
  • C++值类别与移动语义
  • GraphRAG Docker化部署,接入本地Ollama完整技术指南:从零基础到生产部署的系统性知识体系
  • 动物世界一语乾坤韵芳华 人工智能应用大学毕业论文 -仙界AI——仙盟创梦IDE
  • 板凳-------Mysql cookbook学习 (十一--------9)
  • Typecho分类导航栏开发指南:从基础到高级实现
  • axios拦截器
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频摘要快速生成与检索优化(345)
  • Oracle SQL - 使用行转列PIVOT减少表重复扫描(实例)
  • 前端-CSS-day3
  • 【FreeRTOS】事件组
  • 决策树学习
  • OneCode3.0 VFS分布式文件管理API速查手册
  • 网络安全的基本练习
  • Autosar CanSM配置-Busoff参数-基于ETAS软件