Git 常用命令完全指南:从入门到高效协作

embedded/2025/3/19 17:34:18/

文章需要结构清晰,涵盖从入门到进阶的常用命令,结合实例和注意事项,帮助用户快速掌握Git的核心功能,并应用到实际项目中


Git Workflow

一、仓库初始化与基础操作

1. 创建与克隆仓库

# 初始化本地仓库
git init# 克隆远程仓库(SSH方式)
git clone git@gitee.com:user/repo.git# 克隆指定分支(SSH方式)
git clone -b dev git@gitee.com:user/repo.git

2. 文件状态管理

# 查看当前状态(推荐别名:git st)
git status# 添加单个文件到暂存区
git add index.html# 添加所有修改(不包括.gitignore文件)
git add .# 交互式添加(选择部分修改)
git add -p

二、提交历史管理

1. 提交操作

# 常规提交
git commit -m "完善用户登录功能"# 修改上次提交(修正提交信息)
git commit --amend# 带详细描述的提交
git commit -m "标题" -m "详细描述..."

2. 查看历史记录

# 简洁版历史(推荐别名:git lg)
git log --oneline --graph# 显示文件变化
git log -p# 按作者过滤
git log --author="John"# 按时间过滤
git log --since="2023-01-01" --until="2023-06-30"

三、分支管理策略

1. 基础分支操作

# 查看所有分支
git branch -av# 创建并切换分支
git checkout -b feature-auth# 删除已合并分支
git branch -d old-feature# 强制删除未合并分支
git branch -D hotfix

2. 分支合并与变基

# 合并分支到当前分支
git merge feature-auth# 变基操作(保持历史线性)
git checkout feature-auth
git rebase main# 交互式变基(修改历史提交)
git rebase -i HEAD~3

四、远程协作流程

1. 远程仓库管理

# 查看远程仓库信息
git remote -v# 添加多个远程仓库
git remote add upstream git@gitee.com:other/repo.git# 修改远程仓库地址
git remote set-url origin new_url

2. 推送与拉取

# 首次推送分支
git push -u origin main# 强制推送(慎用!)
git push -f# 拉取并合并
git pull origin dev# 拉取并变基
git pull --rebase origin dev

五、撤销与恢复操作

1. 文件级撤销

# 撤销工作区修改
git checkout -- file.txt# 撤销暂存区修改
git reset HEAD file.txt

2. 提交级撤销

# 回退到指定提交(保留修改)
git reset 08a3b2d# 硬回退(慎用!丢弃修改)
git reset --hard HEAD~1# 反提交(创建新提交撤销)
git revert 08a3b2d

六、高级实用技巧

1. 储藏临时修改

# 储藏当前修改
git stash# 查看储藏列表
git stash list# 应用最近储藏
git stash pop# 应用指定储藏
git stash apply stash@{1}

2. 标签管理

# 创建标签
git tag v1.0.0# 带注释的标签
git tag -a v1.1.0 -m "正式版本发布"# 推送标签到远程
git push origin --tags

七、典型工作流示例

1. 功能开发流程

开发者 本地仓库 远程仓库 git checkout -b feature 代码修改 git commit loop [开发迭代] git push origin feature 创建Pull Request 代码审查通过 合并到main分支 开发者 本地仓库 远程仓库

八、最佳实践建议

1. 提交规范:

# 推荐格式
<type>(<scope>): <subject># 示例
feat(user): 新增手机号登录功能
fix(payment): 修复金额计算错误

gitignore__190">2. .gitignore 模板:

# 系统文件
.DS_Store
Thumbs.db# 开发环境
node_modules/
.env
*.log# IDE配置
.vscode/
.idea/

gitconfig_206">3. 别名配置(~/.gitconfig):

[alias]st = status -sco = checkoutbr = branchci = commitlg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

掌握这些核心命令,结合团队协作规范,您将能高效应对日常开发中的版本控制需求。建议通过实际项目练习巩固知识,遇到问题时善用 git help 查看官方文档。


http://www.ppmy.cn/embedded/173909.html

相关文章

【Leetcode刷题随笔】206.反转链表

1.题目简介 翻转一个单链表&#xff0c;示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL。 原题链接&#xff1a;206.反转链表. 2.解法思路 要反转一个链表&#xff0c;可以定义一个新的链表来实现反转&#xff0c;但是内存空间消…

Qt——设计颜色编辑选取对话框

Qt中已经有一些封装好的对话框&#xff0c;比如QMessageBox、QColorDialog等&#xff0c;使用起来快捷方便&#xff0c;但缺点是我们无法为它们自定义样式&#xff0c;所以可能难以“融入”我们的项目。既然如此&#xff0c;那就自己做一个把。抱着这样的想法&#xff0c;我设计…

Java面试八股—Redis篇

一、Redis的使用场景 &#xff08;一&#xff09;缓存 1.Redis使用场景缓存 场景&#xff1a;缓存热点数据&#xff08;如用户信息、商品详情&#xff09;&#xff0c;减少数据库访问压力&#xff0c;提升响应速度。 2.缓存穿透 正常的访问是&#xff1a;根据ID查询文章&…

AI学习第二天--监督学习 半监督学习 无监督学习

目录 1. 监督学习&#xff08;Supervised Learning&#xff09; 比喻&#xff1a; 技术细节&#xff1a; 形象例子&#xff1a; 2. 无监督学习&#xff08;Unsupervised Learning&#xff09; 比喻&#xff1a; 技术细节&#xff1a; 形象例子&#xff1a; 3. 半监督学…

hbuiderx的sass编译器报dart-sass等错误的解决方法

HBuilderX 4.5起&#xff0c;vue2的sass编译器由node-sass改为dart-sass。node-sass是已经被淘汰的不再维护的库&#xff0c;且不支持arm cpu。 node-sass有些过期语法在dart-sass上报错导致无法编译。 虽然默认为dart-sass&#xff0c;但HBuilderX 4.56版也提供了选项&#xf…

HTML 新手入门:从零基础到搭建第一个静态页面(一)

开启 HTML 学习之旅 在互联网的广袤世界中&#xff0c;网页是我们与信息交互的主要窗口。而 HTML&#xff0c;作为构建网页的基石&#xff0c;就像是搭建房屋的砖块&#xff0c;是网页开发中不可或缺的基础。无论你是对网页开发充满好奇的小白&#xff0c;还是渴望系统学习前端…

华为云认证 - 云学堂「集证」有礼

华为云最近又出了一个新活动&#xff0c;我看了一下&#xff0c;奖励比上次的要好很多&#xff0c;本来不想搞的&#xff0c;这下不得不考虑一下了~ 还是一样&#xff0c;得先报名才能参与活动&#xff01;特别提醒一下&#xff0c;企业账号是不能参加这次活动的&#xff0c;大…

【区块链+乡村振兴】国经安农信链服务平台 | FISCO BCOS 应用案例

传统农业交易市场面临着信息不对称、追溯体系不健全、信任缺失等多重挑战。而区块链技术的应用&#xff0c; 能够实现农产品从生产源头到消费者手中的全链条信息记录与追溯&#xff0c; 确保数据的真实性和透明度&#xff0c; 有效打击假冒伪劣产品&#xff0c; 增强消费者信任…