一、Git 基础配置与初始化 @
1.1 远程仓库连接 @
# 克隆远程仓库(HTTP认证方式)
git clone http://username:password@remote
# 测试 SSH 连接是否生效
ssh -T git@github.com
1.2 用户身份配置 @
# 查看当前全局配置
git config --global --list
# 配置全局用户名和邮箱(重要:用于标识提交者身份)
git config --global user.name "xxxx"
git config --global user.email "xxxxx"
1.3 仓库初始化 @
# 初始化本地 Git 仓库
git init
# 克隆远程版本库到本地
git clone <repository_url>
二、文件跟踪与版本管理 @
2.1 文件状态监控 @
# 查看工作区和暂存区状态
git status
2.2 文件添加与删除 @
# 添加文件到暂存区
git add . # 跟踪所有改动过的文件
git add --all # 添加所有文件(包括新增和删除)
git add <file> # 跟踪指定文件
# 文件删除管理
git rm <file> # 删除文件并停止跟踪
git rm --cached <file> # 停止跟踪文件但不删除本地文件
git mv <old_file> <new_file> # 文件重命名
2.3 文件暂存 @
要将当前未提交的改动同步到新分支,可以按照以下步骤操作,确保工作区的修改不丢失:
1. 保存当前未提交的改动 @
如果担心操作失误,可以先将当前改动暂存(stash),避免意外丢失:
git stash
(后续可以通过 git stash pop 恢复暂存的内容)
2. 创建并切换到新分支 @
使用 git checkout -b 命令创建新分支并立即切换到该分支(Git 2.23+ 也支持 git switch -c):
# 创建并切换到新分支(例如新分支名为 feature/new-branch)
git checkout -b feature/new-branch
或
git switch -c feature/new-branch
3. 恢复未提交的改动(如果执行了步骤1) @
如果之前用 git stash 暂存了改动,在新分支中恢复:
git stash pop
此时,之前在原分支未提交的改动会被恢复到新分支的工作区。
4. 提交改动到新分支 @
在新分支中提交恢复后的改动:
# 暂存文件(. 表示暂存所有改动)
git add .
# 提交到新分支
git commit -m "提交信息:同步原分支未提交的改动"
2.4 提交更改 @
# 提交更改到版本库
git commit -m "提交说明" # 标准提交
git commit --amend # 修改最后一次提交(可修改提交信息或添加文件)
三、版本比较与历史查看 @
3.1 差异比较 @
# 比较不同版本间的差异
git diff <commit_a> <commit_b> [file] # 查看两次提交的文件变动
3.2 提交历史查询 @
# 查看提交历史
git log # 完整提交历史
git log -p <file> # 查看指定文件的历史变更详情
git log --author="xxxx" # 按作者筛选提交
git log --grep="关键词" # 按提交信息关键词筛选
git log --since="2020.02.02" --until="2020.02.02" # 按时间范围筛选
git log --oneline -- <file.txt> # 简洁显示指定文件修改记录
git log --merges # 查看合并提交
git log --merge/--no-merges # 查看冲突/非冲突文件
3.3 文件变更追溯 @
# 详细追溯文件变更
git blame <file> # 以列表方式查看文件的逐行提交历史
git shortlog # 快速查看各贡献者的提交摘要
四、撤销与回滚操作 @
4.1 撤销未提交的更改 @
# 撤销工作区修改
git reset --hard HEAD # 撤销所有未提交文件的修改
git checkout HEAD <file> # 撤销指定未提交文件的修改
4.2 版本回退 @
# 版本回退操作
git revert <commit> # 撤销指定提交(创建新的反向提交)
git reset --hard <commit_id> # 强制回滚到指定提交
git reset HEAD^ --soft # 撤销上次提交,保留更改在暂存区
五、分支管理 @
5.1 分支基础操作 @
# 分支创建与查看
git branch # 创建新分支
git branch # 查看本地分支
git branch -r # 查看远程分支
git branch -a # 查看所有分支(本地+远程)
git branch -d # 删除本地分支
# 分支切换
git checkout master # 切换到master分支
5.2 远程分支管理 @
# 远程分支操作
git push origin : # 删除远程分支
六、标签管理 @
6.1 标签操作 @
# 标签管理
git tag # 列出所有本地标签
git tag <tagname> # 基于最新提交创建标签
git tag -d <tagname> # 删除标签
七、分支合并与代码整合 @
7.1 代码合并策略 @
# 分支合并
git merge <branch> # 合并指定分支到当前分支(保留完整历史)
git rebase <branch> # 衍合指定分支到当前分支(整理提交历史)
7.2 远程仓库协作 @
# 远程仓库配置
git remote -v # 查看远程版本库信息
git remote add origin <url> # 添加远程仓库
git remote show <remote> # 查看指定远程版本库详细信息
git remote remove origin # 删除远程仓库
八、团队协作流程 @
8.1 代码拉取与推送 @
# 代码同步
git pull origin master # 拉取远程master分支代码
git push -u origin master # 首次推送并建立跟踪关系
git push origin master # 推送到master分支
8.2 分支合并推送 @
# 分支合并与推送
git merge dev # 当前分支合并dev分支代码
九、高级日志查看 @
9.1 图形化日志展示 @
# 自定义美观的图形化日志输出
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
十、Git 与 SVN 集成 @
10.1 Git-SVN 桥接操作 @
# SVN 仓库操作
git svn clone -r HEAD <svn_repository_url> # 克隆SVN仓库最新版本
git svn dcommit # 提交到SVN仓库
git svn rebase # 从SVN仓库更新
git svn commit -m "提交信息" # SVN方式提交
使用建议 @
- 提交规范:每次提交应有明确的提交信息,说明本次更改的目的
- 分支策略:推荐使用功能分支开发,主分支保持稳定
- 定期同步:频繁拉取远程更新,避免大规模冲突
- 提交前检查:使用
git status 和git diff确认更改内容
这个结构化的指南涵盖了 Git 的完整工作流程,从基础配置到高级操作,适合不同阶段的开发者参考使用。