首页 > 其他分享 >git从入门到实践

git从入门到实践

时间:2024-12-17 14:29:15浏览次数:5  
标签:Git 入门 仓库 实践 -- git branch 分支

文章目录

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,入门,仓库,实践,--,git,branch,分支
From: https://blog.csdn.net/weixin_70059007/article/details/144534513

相关文章

  • mybatis 超简单入门 详细图文教程
    mybatisMyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java对......
  • PCIe扫盲——PCIe总线体系结构入门
    和很多的串行传输协议一样,一个完整的PCIe体系结构包括应用层、事务层(TransactionLayer)、数据链路层(DataLinkLayer)和物理层(PhysicalLayer)。其中,应用层并不是PCIeSpec所规定的内容,完全由用户根据自己的需求进行设计,另外三层都是PCIeSpec明确规范的,并要求设计者严格遵循的。......
  • NoHttpResponseException异常分析和优化实践
    NoHttpResponseException异常分析和优化实践在使用HttpClient进行网络请求时,如果服务器端没有响应,可能会抛出NoHttpResponseException异常。该异常表明服务器端没有及时响应,导致客户端无法获取到服务器端的响应。在实际开发中,我们通常会遇到两种情况:服务器端没有正常响应,导致......
  • 如何解决Git合并冲突?
    讲个故事先:一个晴朗的日子,Alex把远程版本库的修改拉到他的本地版本库。他修改了名为abc.txt的文件,将其暂存(staged),提交(committed),最后推送(pushed)回远程版本库。同时,Tina不知道Alex对abc.txt文件的修改,在该文件的相同区域做了一些修改,并尝试将其推送到远程仓库。Git是一......
  • 第二部分:进阶主题 15 . 安全管理 --[MySQL轻松入门教程]
    MySQL数据库的安全管理是一个多方面的工作,涉及到了解和配置数据库的访问控制、加密、备份与恢复策略、日志记录等多个方面。以下是一些关键点:1.用户权限管理最小权限原则:每个用户应该只被授予完成其工作所需的最低限度的权限。定期审查权限:定期检查用户的权限,确保它们仍......
  • Yocto项目 - 层管理:工具、方法与实践
    引言在Yocto项目中,层(Layer)是实现模块化和灵活构建的核心概念。层通过元数据的形式组织和管理构建信息,不同的层可以独立开发、组合并复用,从而大大简化复杂项目的构建流程。然而,如何有效地管理层,尤其是在多层项目中,可能会成为开发者面临的挑战。本文将详细讲解Yocto项目中......
  • Gitee三方登录_Python (超详细)
    第三方登录是一种常见的身份验证机制,允许用户使用他们在其他平台(如社交媒体、电子邮件服务或开发平台)的账号来登录你的应用或网站,而不需要创建新的用户名和密码。这种方式不仅简化了用户的登录过程,还提高了用户体验和安全性。第三方登录的主要特点简化注册和登录:用户无需创建新......
  • github克隆代码报错
    报错一:gitclonehttps://github.com/PanJiaChen/vue-admin-template.git报错Cloninginto'vue-admin-template'...fatal:unabletoaccess'https://github.com/PanJiaChen/vue-admin-template.git/':Failedtoconnecttogithub.comport443after......
  • 【2025年】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!
    ......
  • Swing入门
    https://docs.oracle.com/javase/tutorial/uiswing/index.htmlAbouttheJFCandSwingJFC=JavaFoundationClasses=java基础类用途:1用于构建图形用户界面;2给Java应用添加图形和交互功能为什么叫JFC:MFC=MicrosoftFoundationClassLibraryJFC包含下表特性:FeatureDescr......