image

一、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方式提交

使用建议 @

  1. 提交规范:每次提交应有明确的提交信息,说明本次更改的目的
  2. 分支策略:推荐使用功能分支开发,主分支保持稳定
  3. 定期同步:频繁拉取远程更新,避免大规模冲突
  4. 提交前检查:使用 git status​ 和 git diff 确认更改内容

这个结构化的指南涵盖了 Git 的完整工作流程,从基础配置到高级操作,适合不同阶段的开发者参考使用。