当前位置: 首页 > article >正文

git从入门到实践

文章目录

    • 1. Git 基础概念
      • 什么是 Git?
      • Git 的核心概念
    • 2. 安装与配置
      • 安装 Git
      • 配置 Git
    • 3. 创建与管理本地仓库
      • 初始化一个 Git 仓库
      • 添加文件并提交
      • 查看状态与日志
    • 4. 分支与合并
      • 创建与切换分支
      • 合并分支
      • 删除分支
    • 5. 远程仓库
      • 关联远程仓库
      • 推送与拉取
    • 6. 冲突处理
    • 7. 标签管理
      • 创建标签
      • 推送标签
    • 8. 实际项目中的 Git 工作流
      • 常用工作流
    • 9. Git 高级功能
      • 撤销与回滚
      • 查看与比较
    • 10. 学习与实践资源

1. Git 基础概念

什么是 Git?

  • Git 是一个分布式版本控制系统,用于跟踪文件的更改,协调多个开发者的工作。
  • 与传统版本控制系统(如 SVN)不同,Git 的每个开发者都有一个完整的代码库副本。

Git 的核心概念

  • Repository(仓库):存放代码和版本历史的地方。
  • Commit(提交):保存代码快照。
  • Branch(分支):独立开发的时间线。
  • Merge(合并):将不同分支的更改整合到一起。
  • Remote(远程仓库):托管在服务器上的 Git 仓库(如 GitHub、GitLab)。

2. 安装与配置

安装 Git

  • Windows: 从 Git 官方网站 下载并安装。
  • Linux: 使用包管理工具安装:
   sudo apt-get install git # Ubuntu/Debian
   sudo yum install git     # CentOS/Fedora

配置 Git

  1. 设置用户名和邮箱(记录在每次提交中):

    git config --global user.name "Your Name"
    git config --global user.email "your_email@example.com"
    
  2. 查看配置:

    git config --list
    

3. 创建与管理本地仓库

初始化一个 Git 仓库

mkdir myproject
cd myproject
git init

添加文件并提交

  1. 添加文件到暂存区:

    git add <filename>
    git add .  # 添加所有文件
    
  2. 提交文件到版本库:

    git commit -m "Initial commit"
    
    • -m 后引号的内容为提交内容的说明

查看状态与日志

  • 查看当前仓库状态:

    git status
    
  • 查看提交历史:

    git log
    git log --oneline # 查看简易版提交历史
    

4. 分支与合并

创建与切换分支

  1. 创建分支:

    git branch new-branch
    
  2. 切换分支:

    git checkout new-branch
    git switch new-branch # 推荐
    
  3. 创建并切换分支:

    git checkout -b new-branch
    

合并分支

  1. 切换到主分支:

    git checkout main
    
  2. 合并分支:

    git merge new-branch
    

删除分支

git branch -d new-branch # 已合并
git branch -D new-branch # 未合并

5. 远程仓库

关联远程仓库

  1. 克隆远程仓库:

    git clone <repository-url>
    
  2. 添加远程仓库:

    git remote add origin <repository-url>
    

推送与拉取

  1. 推送本地更改到远程仓库:

    git push -u origin main
    
  2. 从远程仓库拉取最新代码:

    git pull origin main
    

6. 冲突处理

  1. Git 冲突通常发生在合并分支时。Git 会在冲突文件中标记冲突部分:

    <<<<<<< HEAD
    Your changes
    =======
    Incoming changes
    >>>>>>> branch-name
    
  2. 手动编辑文件解决冲突,然后标记为已解决:

    git add <filename>
    git commit
    

7. 标签管理

创建标签

  1. 创建轻量标签:

    git tag v1.0
    
  2. 创建带注释的标签:

    git tag -a v1.0 -m "Version 1.0"
    

推送标签

git push origin v1.0

8. 实际项目中的 Git 工作流

常用工作流

  1. Git Flow
    • 使用 maindevelop 作为主分支,结合 featurereleasehotfix 分支。
  2. Forking Workflow
    • Fork 仓库,在自己的分支上开发,完成后提交 Pull Request。
  3. Feature Branch Workflow
    • 每个功能在独立分支上开发,完成后合并到主分支。

9. Git 高级功能

撤销与回滚

  1. 撤销暂存区的更改:

    git reset HEAD <filename>
    
  2. 撤销文件改动:

    git checkout -- <filename>
    
  3. 回滚到某个提交:

    git reset --hard <commit-hash>
    

查看与比较

  1. 查看差异:

    git diff
    
  2. 查看文件的历史改动:

    git log -- <filename>
    

10. 学习与实践资源

  • 官方文档:Git 官方文档
  • 交互式教程:Learn Git Branching
  • Git 可视化工具:GitKraken、SourceTree
  • 书籍推荐:《Pro Git》(在线免费阅读)

http://www.kler.cn/a/441901.html

相关文章:

  • ToDesk云电脑、顺网云、网易云、易腾云、极云普惠云横测对比:探寻电竞最佳拍档
  • 利用rsync备份全网服务器数据
  • C/C++内存管理(超详解)
  • [手机Linux] 七,NextCloud优化设置
  • 郑州大学2022级大三期末复习总结(数据库,传感器,嵌入式,人工智能,移动终端开发,计算机英语)
  • 【2024年华为OD机试】 (B卷,100分)- 路灯照明问题(Java JS PythonC/C++)
  • DAOBase 推出 DAO POP:赋能创作者与社区,畅享链上未来
  • linux中docker命令大全
  • SpringAop-拦截参数带注解的方法
  • “人工智能+职业本科”:VR虚拟仿真实训室的发展前景
  • ElasticSearch09-并发控制
  • 【HarmonyOS之旅】HarmonyOS开发基础知识(一)
  • CCNP_SEC_ASA 第四天作业
  • SAP PP 死循环bom,递归BOM的问题 ,再bom保存时校验
  • python练习之“用 Python 的 Pygame 库创建五子棋游戏”
  • Spring Boot 声明式事务
  • CentOs7使用yum安装docker
  • UITableView显示数据,增加数据,删除数据及移动数据行
  • 完全二叉树【东北大学oj数据结构9-1】C++
  • 面试之手撸安全队列
  • 栈(线性表2)
  • 关于opengauss
  • 《半导体芯片制程:微观世界里的科技风云》
  • 蓝桥杯数列求值(2019试题C)
  • 【系统】Windows11更新解决办法,一键暂停
  • 安卓课设版算法计算器