Git核心配置与常用操作指南
基础配置
初始化全局设置,提升使用体验:
git config --global user.name "your-name"
git config --global user.email "your-email@example.com"
git config --global color.ui true
git config --global core.editor vim
git config --global credential.helper 'cache --timeout=3600'
用户配置文件位于 ~/.gitconfig,可自定义别名和颜色主题:
[user]
name = your-name
email = your-email@example.com
[color]
ui = auto
[alias]
st = status
ci = commit
co = checkout
br = branch
l = log --pretty=oneline --abbrev-commit --graph --decorate
amend = commit --amend
unstage = reset HEAD
uncommit = reset --soft HEAD^
who = shortlog -n -s --no-merges
g = grep -n --color -E
cp = cherry-pick -x
cb = checkout -b
版本管理核心命令
查看提交历史
git log
git log --since="2 days ago"
git log -p --stat
git log --oneline --graph
git reflog
文件状态与差异分析
git diff # 工作区与暂存区对比
git diff --staged # 暂存区与仓库对比
git diff HEAD~1 HEAD # 两版本间变更
git diff --stat # 统计修改信息
git diff "@{yesterday}" # 昨日更改摘要
文件追踪与修改撤销
git add file.txt # 添加单个文件
git add . # 添加所有已跟踪文件的变更
git rm file.txt # 从仓库移除并删除文件
git rm --cached file.txt # 仅从版本库移除,保留本地副本
git mv oldname.txt newname.txt # 文件重命名
git restore --worktree file.txt # 撤销工作区修改
git restore --staged file.txt # 撤销暂存区修改
提交与回滚操作
git commit -m "fix bug"
git commit -a # 自动添加已跟踪文件并提交
git commit --amend # 修改最近一次提交内容
git reset HEAD~1 # 取消最近一次提交(保留变更)
git reset --hard HEAD~2 # 彻底丢弃最近两次提交
git revert HEAD # 生成反向提交,安全回退
分支管理实践
分支创建与切换
git branch feature-login # 创建新分支
git branch -d feature-login # 删除已合并分支
git branch -D feature-login # 强制删除未合并分支
git checkout -b new-feature # 创建并切换到新分支
git checkout feature-login # 切换至指定分支
git checkout -b dev origin/dev # 基于远程分支创建本地分支
合并策略与变基
git merge feature-login # 合并功能分支到当前分支
git merge --no-ff feature-login # 禁用快进合并,生成独立合并提交
git rebase master feature-login # 将分支变基至主干,保持线性历史
远程协作流程
同步与推送
git fetch origin # 获取远程更新
git pull origin main # 拉取并合并远程主分支
git push origin main # 推送本地主分支
git push -u origin feature-x # 推送并建立上游关联
git push origin :feature-x # 删除远程分支(先删本地)
远程仓库维护
git remote -v # 查看远程地址
git remote add upstream git@github:org/repo.git
git remote set-url origin git@github:org/new-repo.git
git remote remove origin
高级工具:补丁与暂存
补丁生成与应用
git diff > patch.diff # 生成变更补丁
git apply patch.diff # 应用补丁
git apply --check patch.diff # 测试补丁兼容性
git format-patch HEAD~3 # 生成最近三次提交的补丁包
工作进度暂存
git stash # 保存当前工作状态
git stash list # 查看所有暂存项
git stash apply # 恢复最新暂存
git stash pop # 恢复并删除暂存项
git stash drop # 删除指定暂存项
git stash branch new-branch stash@{0} # 从暂存创建新分支
清理无用内容
git clean -fdx # 清理未跟踪文件与目录(含忽略项)
git clean -f # 仅清理未跟踪文件