Git Essentials
2026-03-24
新闻来源:网淘吧
围观:75
电脑广告
手机广告
购买adidas上京东官方旗舰店。
Git 核心知识
用于版本控制和协作的 Git 核心命令。
初始设置
# 配置用户
git config --global user.name "你的名字"
git config --global user.email "你的@邮箱.com"
# 初始化仓库
git init
# 克隆仓库
git clone https://github.com/用户/仓库.git
git clone https://github.com/用户/仓库.git 自定义名称
基本工作流
暂存与提交
# 检查状态
git status
# 将文件添加到暂存区
git add 文件.txt
git add .
git add -A # 包含删除在内的所有更改
# 提交更改
git commit -m "提交信息"
# 一步完成添加和提交
git commit -am "信息"
# 修改最后一次提交
git commit --amend -m "新信息"
git commit --amend --no-edit # 保留原信息
查看更改
# 显示未暂存的更改
git diff
# 显示已暂存的更改
git diff --staged
# 显示特定文件的更改
git diff 文件.txt
# 显示两次提交之间的更改
git diff 提交1 提交2
分支与合并
分支管理
# 列出分支
git branch
git branch -a # 包含远程分支
# 创建分支
git branch 功能分支名
# 切换分支
git checkout 功能分支名
git switch 功能分支名 # 现代替代命令
# 创建并切换
git checkout -b 功能分支名
git switch -c 功能分支名
# 删除分支
git branch -d 分支名
git branch -D 分支名 # 强制删除
# 重命名分支
git branch -m 旧名称 新名称
合并
# 将分支合并到当前分支
git merge 功能分支名
# 禁用快进合并
git merge --no-ff 功能分支名
# 中止合并
git merge --abort
# 显示合并冲突
git diff --name-only --diff-filter=U
远程操作
管理远程仓库
# 列出远程仓库
git remote -v
# 添加远程仓库
git remote add origin https://github.com/用户/仓库.git
# 更改远程仓库 URL
git remote set-url origin https://github.com/用户/新仓库.git
# 移除远程仓库
git remote remove origin
与远程仓库同步
# 从远程仓库获取
git fetch origin
# 拉取更改(获取 + 合并)
git pull
# 使用变基方式拉取
git pull --rebase
# 推送更改
git push
# 推送新分支
git push -u origin 分支名
# 强制推送(谨慎使用!)
git push --force-with-lease
历史与日志
查看历史记录
# 查看提交历史
git log
# 每行显示一个提交
git log --oneline
# 带图形化显示
git log --graph --oneline --all
# 最近N次提交
git log -5
# 按作者筛选提交
git log --author="姓名"
# 按时间范围筛选提交
git log --since="2周前"
git log --until="2024-01-01"
# 文件历史
git log -- 文件.txt
搜索历史
# 搜索提交信息
git log --grep="bug fix"
# 搜索代码变更
git log -S "函数名"
# 显示每行代码的修改者
git blame 文件.txt
# 查找引入bug的提交
git bisect start
git bisect bad
git bisect good 提交哈希
撤销更改
工作目录
# 丢弃文件的更改
git restore 文件.txt
git checkout -- 文件.txt # 旧方法
# 丢弃所有更改
git restore .
暂存区
# 取消暂存文件
git restore --staged 文件.txt
git reset HEAD 文件.txt # 旧方法
# 取消所有暂存
git reset
提交
# 撤销上次提交(保留更改)
git reset --soft HEAD~1
# 撤销上次提交(丢弃更改)
git reset --hard HEAD~1
# 还原提交(创建新提交)
git revert 提交哈希
# 重置到特定提交
git reset --hard 提交哈希
贮藏
# 暂存更改
git stash
# 带消息暂存
git stash save "进行中的工作"
# 列出暂存
git stash list
# 应用最新暂存
git stash apply
# 应用并移除暂存
git stash pop
# 应用特定暂存
git stash apply stash@{2}
# 删除暂存
git stash drop stash@{0}
# 清除所有暂存
git stash clear
变基
# 变基当前分支
git rebase main
# 交互式变基(最近3次提交)
git rebase -i HEAD~3
# 解决冲突后继续
git rebase --continue
# 跳过当前提交
git rebase --skip
# 中止变基
git rebase --abort
标签
# 列出标签
git tag
# 创建轻量标签
git tag v1.0.0
# 创建带注释标签
git tag -a v1.0.0 -m "版本 1.0.0"
# 标记特定提交
git tag v1.0.0 提交哈希
# 推送标签
git push origin v1.0.0
# 推送所有标签
git push --tags
# 删除标签
git tag -d v1.0.0
git push origin --delete v1.0.0
高级操作
拣选
# 应用特定提交
git cherry-pick 提交哈希
# 拣选但不提交
git cherry-pick -n 提交哈希
子模块
# 添加子模块
git submodule add https://github.com/user/repo.git 路径/
# 初始化子模块
git submodule init
# 更新子模块
git submodule update
# 克隆包含子模块
git clone --recursive https://github.com/user/repo.git
清理
# 预览将要删除的文件
git clean -n
# 删除未跟踪的文件
git clean -f
# 删除未跟踪的文件和目录
git clean -fd
# 包含被忽略的文件
git clean -fdx
常用工作流程
特性分支工作流程:
上网淘巴领天猫淘宝优惠券,一年省好几千。git checkout -b feature/new-feature
# 进行更改
git add .
git commit -m "添加新特性"
git push -u origin feature/new-feature
# 创建PR,合并后:
git checkout main
git pull
git branch -d feature/new-feature
热修复工作流程:
git checkout main
git pull
git checkout -b hotfix/critical-bug
# 修复错误
git commit -am "修复严重错误"
git push -u origin hotfix/critical-bug
# 合并后:
git checkout main && git pull
同步分支:
git remote add upstream https://github.com/original/repo.git
git fetch upstream
git checkout main
git merge upstream/main
git push origin main
实用别名
添加到~/.gitconfig:
[别名]
st = 状态
co = 检出
br = 分支
ci = 提交
unstage = 重置 HEAD --
last = 日志 -1 HEAD
visual = 日志 --图形 --单行 --全部
amend = 提交 --修正 --不编辑
建议
- 频繁提交,后期完善(交互式变基)
- 编写有意义的提交信息
- 使用
.gitignore来排除文件 - 切勿强制推送到共享分支
- 开始工作前先拉取
- 使用功能分支,而非主分支
- 合并前对功能分支进行变基
- 使用
--force-with-lease而非--force
常见问题
撤销意外提交:
git reset --soft HEAD~1
恢复已删除分支:
git reflog
git checkout -b branch-name <commit-hash>
修复错误的提交信息:
git commit --amend -m "正确信息"
解决合并冲突:
# 编辑文件以解决冲突
git add resolved-files
git commit # 或 git merge --continue
文档资料
官方文档:https://git-scm.com/docPro Git 书籍:https://git-scm.com/book可视化 Git 指南:https://marklodato.github.io/visual-git-guide/
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Outlook
下一篇:WhatsApp Business


微信扫一扫,打赏作者吧~