• 4_Git


    一、Git学习网站

    二、Git简介

    1.Git是什么

    分布式版本控制系统

    2.版本控制

    3.集中式 vs 分布式

    4.Git简史

    5.工作区、暂存区、版本库

    • 流程

      工作区:写代码 --> git add --> 暂存区 --> git commit --> 版本库

    • 工作区: 就是我们能看见的写代码的地方
      • git管理的代码: 默认都是git管理对象
      • git忽略的代码设置,如下操作:
        1. 项目的根目录新建一个文件: .gitignore
        2. 哪些内容要忽略,就在里面书写路径,我要忽略node_modules文件夹,就在里面写上node_modules
    • 暂存区: 就是形成一个历史版本
    • 本地仓库: 历史版本的存放区域

    6.远程代码托管平台

    7.下载安装

    • 安装

      双击, 一直下一步

    • 检测

      • 在任意位置打开命令行

        git --version
        
        • 1
      • 在任意位置点击鼠标右键,出现: Git Bash Here

      • 就表示安装成功!

    三、Git命令行操作

    1.本地仓库初始化

    git init
    
    • 1

    2.配置用户信息

    git config --global user.name "你的名字"
    git config --global user.email "你的邮箱"
    
    • 1
    • 2

    3.基本命令操作

    1. 状态查看

      git status
      
      • 1
    2. 添加到暂存区

      git add .
      
      • 1
    3. 提交到本地仓库

      git commit -m "这次提交的日志"
      
      • 1
    4. 查看历史记录

      git log
      
      • 1
    5. 版本回退与前进

      • 查看所有历史版本

        git reflog
        
        • 1
      • 恢复指定版本

        git reset --hard 版本号
        
        • 1
    6. 撤销修改

      • 工作区撤销修改

        git checkout -- 文件名
        
        • 1
      • 暂存区修改

        git reset HEAD 文件名
        
        • 1

    4.分支操作

    4.1 查看分支

    • 查看本地仓库的分支情况

      git branch
      
      • 1
    • 查看远程仓库的分支情况

      git branch -r
      
      • 1
    • 查看本地与远程的所有分支情况

      git branch -a
      
      • 1

      结果中带*的表示当前分支

    4.2 创建分支

    • 创建分支

      git branch 分支名
      
      • 1
    • 创建分支,并切换到新创建的这个分支上

      git checkout -b 分支名
      
      • 1

    4.3 切换分支

    git checkout 分支名
    
    • 1

    注意:本地如果不存在这个分支,则会把远程的给弄下来,如果远程也没有,就报错

    4.4 合并分支

    git merge 要合并的分支名称 -m "新版本的描述"
    
    • 1

    4.5 删除分支

    git branch -d 分支名
    
    • 1

    5.远程分支(代码托管平台)

    1. 创建远程库

    2. 远程库与本地关联

      git remote add 别名(默认origin) 远程仓库地址
      
      • 1
    3. 查看本地库与远程库的关联信息

      git remote -v
      
      • 1
    4. 克隆远程库

      git clone 远程仓库地址
      
      • 1
    5. 上传远程分支

      git push -u 远程仓库名 本地分支名:远程分支名
      
      • 1
    6. 删除远程分支

      git push 远程仓库名 --delete 要删除的分支名
      
      • 1
    7. 拉取远程分支

      git fetch 远程仓库名 远程分支名:本地分支名
      
      • 1
    8. 合并远程分支

      git merge 本地分支名 -m 新版本的描述
      
      • 1
    9. 拉取远程分支与本地当前分支合并

      git pull 远程仓库名 远程分支名
      
      • 1
    10. 拉取远程分支与本地某个分支合并

      git pull 远程仓库名 远程分支名:本地分支名
      
      • 1
    11. 团队间协作开发

    12. 跨团队协作开发

      1. 将这个开源的项目 fork 一份到我的远程仓库
      2. clone 我 fork 的这个项目到本地
      3. 写好代码推送到自己的远程
      4. 创建 pull request
    13. ssh免登录

      1. 需要先查看本地电脑是否有 ssh 相关的东西 (用户目录下是否有 .ssh 的文件夹)。有就先删除吧。

      2. 创建 ssh key

        ssh-keygen -t rsa -C "邮箱地址"
        
        • 1
      3. 接着在 用户目录下找到 .ssh 文件夹中的 id_rsa.pub 这个文件

      4. 复制 id_rsa.pub 中的内容

      5. 去远程托管平台上添加 ssh

        1 这时克隆项目时就可以直接选择使用 ssh 的方式

        2 先将本地的https的连接方式给删除,换成 ssh 的连接方式

    四、Git工作流

    1.集中式

    大家全部都在一个分支上写代码master

    2.git flow

    不同分支用来干不同的操作

    3.forking

    fork pull request 这套操作

    五、Git基本操作(工作场景)

    1. 接到新的需求要你开发。

    2. 基于主干分支(master、main、test)创建一个需求分支 (store-xxx)

      a. 远程平台上创建
      b. 本地创建

    3. 拆分任务
      a. 任务1:静态页面编写 2h
      b. 任务2:逻辑联调 2h

    4. 编写任务1

    5. 提交任务1 git commit -m ‘任务1 done’

    6. 编写任务2

    7. 提交任务2 git commit -m ‘任务2 done’

    8. 晚上下班前,都提交上去 git push

    9. 第二天,继续做需求,还是使用 store-xxx 这个分支
      a. 如果这个需求,就你一个人完成,也就是说 这个 store-xxx 分支,是你一个人玩得,就不用更新
      b. 如果这个需求,是多个人完成,大家都在 store-xxx 分支上编写代码的话,需要 git pull 一下。

    10. 编写任务5

    11. 提交任务5 git commit -m ‘任务5 done’

    12. 提交合并请求。

    六、Git分支合并操作(工作场景)

    1.本地操作合并

    1. 收到同事通知,要将 A 分支 合并到 Master 分支
    2. git status查看当前工作空间是否干净。干净则往下操作,否则先处理干净
    3. git checkout master切换到需要被合并的合并上 ,Master分支
    4. git pull拉取一下最新的代码
    5. git merge origin/A合并分支,将 A 分支合并到当前所在分支
    6. 可能会出现冲突,如果有冲突就解决
      a.img
      b. git status查看冲突的文件是什么
      c. 找同事,一起来看这个冲突该如何解决
      d. 解决完之后,需要重新add commit push
    7. git push推送到远程。
    8. git branch -d A删除分支。同时通知同事,合并完成,你可以删除本地的分支了。

    master a - b
    feature-loginlogin a - b - c
    wq a - b - d

    feature-loginlogin => master
    master a - b - c

    wq => master a - b - c - d

    2.远程操作合并

    pull requests

    七、合并分支时解决冲突

    1. 原因

      两个分支在同一个代码上的某一个位置做了修改,这些 git 合并时不知道该听那个分支的。

    2. 解决方案

      1. 找到有冲突的文件
      2. 删除这个文件中的特殊标记
      3. 找到相应的开发人员去商量到底如何处理这个情况,用你的,还是用我的,或者两个都保留
      4. git add
      5. git commit
  • 相关阅读:
    vulnhub-----Hackademic靶机
    Spring事务及分布式事务专题
    微信小程序开发入门与实战(数据监听)
    超4000万行代码,WPS完成「鸿蒙化」:全面适配HarmonyOS NEXT!
    Unity2023打包首包从78Mb到3.0Mb-震惊-我做对了什么
    day37:网编day4,多点通信和并发服务器
    FPGA从入门到精通(二十)SignalTapII
    【Java】抽象类(abstract)、接口(interface)
    About Examples of Statistics in Machine Learning
    EPLAN_A01#图框编辑
  • 原文地址:https://blog.csdn.net/weixin_58764638/article/details/127912191