文章目录
前言
现在随着企业项目代码都是多人协作开发,需要一个分布式版本控制系统来管理代码,这个时候git横空出世,解决代码控制管理问题。
一、git是什么?
Git是一个分布式版本控制系统,广泛用于代码管理。
二、Git基础配置
1.初始配置
# 设置用户名和邮箱
git config --global user.name "您的姓名"
git config --global user.email "您的邮箱@example.com"
# 查看配置
git config --list
git config user.name
git config user.email
2.创建仓库
# 初始化新仓库
git init
# 克隆远程仓库
git clone <repository-url>
git clone https://github.com/username/repository.git
三、基本操作命令
1.查看状态
# 查看工作区状态
git status
# 查看文件变更
git diff
git diff --staged # 查看已暂存的变更
2.添加和提交
# 添加文件到暂存区
git add <filename>
git add . # 添加所有文件
git add *.java # 添加所有Java文件
# 提交到本地仓库
git commit -m "提交信息"
git commit -am "提交信息" # 添加并提交(跳过暂存区)
3.查看历史
# 查看提交历史
git log
git log --oneline # 简洁显示
git log --graph # 图形化显示分支
git log -p # 显示详细变更
# 查看特定文件的变更历史
git log --follow <filename>
四、分支管理
1.分支操作
# 查看分支
git branch
git branch -a # 查看所有分支(包括远程)
# 创建分支
git branch <branch-name>
git checkout -b <branch-name> # 创建并切换到新分支
# 切换分支
git checkout <branch-name>
git switch <branch-name> # Git 2.23+ 推荐使用
# 删除分支
git branch -d <branch-name> # 安全删除
git branch -D <branch-name> # 强制删除
2.合并分支
# 合并分支到当前分支
git merge <branch-name>
# 解决冲突后继续合并
git add .
git commit -m "解决合并冲突"
# 取消合并
git merge --abort
五、远程仓库操作
1.远程仓库管理
# 添加远程仓库
git remote add origin <repository-url>
# 查看远程仓库
git remote -v
# 推送到远程
git push origin <branch-name>
git push -u origin <branch-name> # 设置上游分支
# 从远程拉取
git pull origin <branch-name>
git fetch origin # 只下载不合并
2.克隆和推送
# 克隆仓库
git clone <repository-url>
git clone -b <branch-name> <repository-url> # 克隆特定分支
# 推送所有分支
git push --all origin
# 删除远程分支
git push origin --delete <branch-name>
六、撤销和回退
1.撤销操作
# 撤销工作区修改
git checkout -- <filename>
git restore <filename> # Git 2.23+
# 撤销暂存区修改
git reset HEAD <filename>
git restore --staged <filename> # Git 2.23+
# 撤销提交
git reset --soft HEAD~1 # 保留修改在暂存区
git reset --mixed HEAD~1 # 保留修改在工作区
git reset --hard HEAD~1 # 完全删除修改
2.回退到特定提交
# 查看提交历史
git log --oneline
# 回退到指定提交
git reset <commit-hash>
git revert <commit-hash> # 创建新的撤销提交
七、标签管理
# 创建标签
git tag <tag-name>
git tag -a <tag-name> -m "标签信息" # 带注释的标签
# 查看标签
git tag
git tag -l "v1.*" # 查看特定模式的标签
# 推送标签
git push origin <tag-name>
git push origin --tags # 推送所有标签
# 删除标签
git tag -d <tag-name>
git push origin --delete <tag-name> # 删除远程标签
八、高级操作
1.暂存和恢复
# 暂存当前工作
git stash
git stash save "暂存信息"
# 查看暂存列表
git stash list
# 恢复暂存
git stash pop # 恢复并删除
git stash apply # 恢复但不删除
git stash drop # 删除暂存
# 恢复特定暂存
git stash apply stash@{n}
2.子模块
# 添加子模块
git submodule add <repository-url> <path>
# 克隆包含子模块的仓库
git clone --recursive <repository-url>
git submodule update --init --recursive
# 更新子模块
git submodule update --remote
九、常用工作流程
1.功能开发流程
# 1. 创建功能分支
git checkout -b feature/new-feature
# 2. 开发并提交
git add .
git commit -m "添加新功能"
# 3. 推送到远程
git push origin feature/new-feature
# 4. 创建Pull Request(在GitHub/GitLab上)
# 5. 合并到主分支
git checkout main
git pull origin main
git merge feature/new-feature
git push origin main
2.热修复流程
# 1. 创建热修复分支
git checkout -b hotfix/critical-bug
# 2. 修复并提交
git add .
git commit -m "修复关键bug"
# 3. 合并到主分支和开发分支
git checkout main
git merge hotfix/critical-bug
git push origin main
git checkout develop
git merge hotfix/critical-bug
git push origin develop
十、实用技巧
1.别名配置
# 设置常用别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --oneline --graph"
2.忽略文件
# 创建.gitignore文件
echo "*.log" >> .gitignore
echo "target/" >> .gitignore
echo "*.class" >> .gitignore
3.查看文件历史
# 查看文件的每一行是谁修改的
git blame <filename>
# 查看文件的变更历史
git log -p <filename>
十一、常见问题解决
1.解决冲突
# 1. 查看冲突文件
git status
# 2. 编辑冲突文件,手动解决冲突
# 3. 添加解决后的文件
git add <conflicted-files>
# 4. 提交解决结果
git commit -m "解决合并冲突"
2.找回丢失的提交
# 查看操作历史
git reflog
# 恢复到指定提交
git reset --hard <commit-hash>
3.清理仓库
# 清理未跟踪的文件
git clean -f
# 清理未跟踪的目录
git clean -fd
# 查看将要清理的文件
git clean -n
十二、Git配置最佳实践
1.全局配置
# 设置默认编辑器
git config --global core.editor "vim"
# 设置换行符处理
git config --global core.autocrlf input # Linux/Mac
git config --global core.autocrlf true # Windows
# 设置默认分支名
git config --global init.defaultBranch main
2.项目特定配置
# 在项目目录中设置项目特定的配置
git config user.name "项目专用用户名"
git config user.email "project@example.com"
总结
这些是Git的基本使用方式。根据您的具体需求,可以深入学习特定的命令和功能。建议在实际项目中多加练习,熟练掌握这些命令的使用。
749

被折叠的 条评论
为什么被折叠?



