网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

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

相关文章

上网淘巴领天猫淘宝优惠券,一年省好几千。

广告  ×

您是本站第223218名访客 今日有66篇新文章/评论