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. 最佳实践
- 提交频率:经常提交,保持每次提交的改动相对较小
- 提交信息:写清晰、有意义的提交信息
- 分支使用:为不同功能创建不同分支,避免直接在主分支开发
- 代码审查:使用Pull Request进行代码审查
- 备份:定期推送到远程仓库进行备份
8. 常见问题解决
8.1 合并冲突
当多人修改同一文件时可能出现冲突:
# 查看冲突文件git status# 手动解决冲突后git add 冲突文件git commit -m \"解决冲突\"
8.2 误操作恢复
# 恢复删除的文件git checkout HEAD -- 文件名# 查找丢失的提交git refloggit checkout 提交哈希值