大数据------额外插件及技术------Git(完整知识点汇总)

Git

  • 定义

    • 它是分布式版本控制工具,主要用于管理开发过程中的源代码文件(如:Java类、xml文件、html页面等),在软件开发过程中被广泛应用
  • 作用

    • 代码回溯:快速回到某一代码历史版本
    • 版本切换:同一个项目有等多个版本,可回到某个版本进行操作
    • 多人协作
    • 远程备份
  • Git仓库分类

    • 本地仓库:开发人员自己电脑上的Git仓库
    • 远程仓库:远程服务器上的Git仓库

    在这里插入图片描述

  • Git安装

    • 直接官网下载安装一路next即可(可自行更改安装位置),然后再桌面右键,若出现,如图所示两个菜单则说明安装成功

      在这里插入图片描述

  • Git卸载

    • 找到自己安装Git的目录,双击unins000.exe即可卸载

Git代码托管

  • 作用
    • 搭建Git远程仓库
  • 代码托管服务常用的有
    • GitHub:是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,所以得此名
    • 码云(Gitee):是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云的速度会更快
    • GitLab:是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务
    • BitBucket:是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户

码云代码托管服务

  • 使用码云操作流程如下

    • 注册账号,登陆码云

    • 码云上新建仓库(就是创建远程仓库)

    在这里插入图片描述

    • .gitignore文件是定义当前仓库中的哪些文件不需要Git管理(也就是说你不要管它,不要去动那些不需要Git管理的文件)

    • 创建完成的仓库都会有一个唯一的远程地址,来供其他成员对其进行操作

    • 邀请其他用户称为仓库成员

  • 创建远程仓库((以博主为例,创建一个名为商城项目的仓库))后,该远程仓库的页面为空,如图一所示,创建完远程仓库后一般都需要初始化readme文件(对仓库进行说明),初始化该文件后会刷新在gitee上的远程仓库,会出现一个master分支,而readme文件就在该分支下,如图二所示。

    在这里插入图片描述

    在这里插入图片描述

    注意: 本地仓库与远程仓库进行通信时就需要这个master分支

获取Git仓库

  • 本地初始化一个Git仓库步骤

    • 在任意目录下创建一个空目录作为本地Git仓库

      在这里插入图片描述

    • 进入该目录中单击右键打开Git bash窗口,执行git init命令即可

      在这里插入图片描述

    • 若在当前目录中看到.git目录(该目录为隐藏目录)则说明本地Git仓库创建成功

      在这里插入图片描述

  • 从远程仓库克隆以此来获得一个本地Git仓库

    • 可通过Git提供的命令git clone 远程仓库地址从远程仓库克隆,将远程仓库克隆到本地,此处会在码云上随机选取一个项目进行举例

      • 进入项目页面单击克隆/下载按钮,弹出界面,复制仓库地址

        在这里插入图片描述

      • 在任意目录下创建一个空目录作为本地Git仓库,然后进入该目录中单击右键打开Git bash窗口,执行git clone https://gitee.com/guojongg/manci.git命令即可

        在这里插入图片描述

Git常用命令

工作区、暂存区、版本库

  • 工作区:包含.git目录的目录就是工作区,也称为工作目录,主要用于存放开发的代码
  • 暂存区:.git目录中有很多文件,其中有一个index文件就是暂存区,也可叫做stage。暂存区是一个临时保存修改文件的地方
    • 注意:若仓库为空时,则没有index文件,除非仓库非空且对仓库代码有所修改时才会出现index文件
  • 版本库:.git隐藏目录就是版本库,版本库中存储了很多配置信息、日志信息、文件版本信息等等。(自己不要去东.git目录中的东西)

在这里插入图片描述

  • Git工作区中文件的状态分为两类

    • untracked未跟踪状态------未被纳入版本控制,即这些文件是新创建的,Git还没开始跟踪它们

    • tracked已跟踪状态------被纳入版本控制,Git开始跟踪

      • Unmodified未修改状态:文件已经被Git管理,但是未修改文件
      • Modified已修改状态:文件已经被Git管理,且已修改文件,但还没有被添加到暂存区
      • Staged已暂存状态:文件已经被Git管理且已修改的文件已经被放到了暂存区,但还没有被提交到仓库
      • Committed已提交状态:暂存区的所有文件已被提交到工作区,此时没有待处理的更改,工作目录是干净的
    • 注意:文件的状态会随着我们执行Git的命令发生变化,示例如下

      • 我在刚创建的本地Git仓库(仓库为空)中创建一个文件hello.xml,然后在该目录下右键打开Git Bash,输入命令git status来用于查看当前工作目录的状态

      • git add <file>来将文件的当前状态添加到暂存区,然后再次使用git status命令来查看当前工作目录状态

        在这里插入图片描述

本地仓库操作

  • 普通命令

    命令解释
    git status查看文件状态(例子详见工作区、暂存区、版本库)
    touch 文件名本地仓库创建文件
    mkdir <-p> 目录创建目录,加上-p代表创建多级目录
    cd 目录进入目录(可直接进多级目录)
    git add <file>将文件的修改加入暂存区(例子详见工作区、暂存区、版本库)
    git reset <文件名>将暂存区的文件取消暂存
    git reset --hard 版本号切换到项目指定的版本
    git commit将暂存区的文件修改提交到版本库
    rm <文件名>从本地仓库中删除文件,该删除操作会被存在工作区
    git rm <文件名>从本地仓库中删除指定文件,并将该删除操作提交到暂存区
    git rm -f <文件>删除文件
    git rm <-r> <目录名>从已提交到本地仓库的版本区中完全删除指定目录,并将该删除操作提交到暂存区。若加上-r则代表删除该目录中是所有文件及其子目录和子目录中的文件
    git restore <文件/目录名>恢复工作区中的文件内容
    git restore --staged <文件/目录名>将被删除的文件或目录转移到工作区
    git log查看项目日志
    git clone从远程仓库克隆一个完整的 Git 仓库到本地。克隆操作会将远程仓库的所有历史记录、分支和文件复制到本地计算机上,创建一个新的本地仓库。
    • 示例1:未修改hello.xml文件

      在这里插入图片描述

    • 示例2:修改hello.xml文件:打开该文件随便写点东西然后在该文件所在的目录下右键→Git Bash

      在这里插入图片描述

    • 示例3:文件提交后可查看日志并回到项目指定版本

      在这里插入图片描述

创建文件、写入数据、提交到版本库
  • 操作步骤
    • 创建本地仓库
    • touch <文件名>创建文件
    • vim <文件名>按会回车进入新的命令界面,然后按i即可给该文件写入数据,数据写入完毕后按ESC退出文件编辑状态,然后按:wq(作用是保存编辑并退出)
    • git add <文件名>将该文件放到暂存区
    • git commit -m "init 文件名" <文件名>将该文件推送到暂存库

在这里插入图片描述

创建文件后删除文件、恢复文件—针对于未被提交到版本区的文件

未被提交到版本区的文件不能用git rm <文件名>来删除

  • rm <文件名>------删除文件并将该删除操作放到工作区

    • 创建的文件若在工作区,并未提交到缓存区时只能只能利用该命令删除,利用git rm <文件名>删除时则会失败报错(原因:该命令只能删除已经提交到暂存区的文件,对在工作区的文件无法进行删除操作)。

      • 若该文件在工作区删除,则无法恢复!!!

      在这里插入图片描述

    • 若该文件在暂存区,利用rm <文件名>删除时被删除的文件会在工作区,此时可以利用git restore <文件>恢复

      在这里插入图片描述

  • git rm -f <文件名>------彻底删除文件

    • 新创建的文件在暂存区时才可用该方法删除,且删除后,被删除的文件不会存在于工作区、暂存区,所以该文件不能被恢复

      在这里插入图片描述

创建文件后删除文件、恢复文件—针对于被提交到版本区的文件
  • rm <文件名>------删除文件并将该删除操作放到工作区

    • rm restore <文件名>------恢复在工作区的文件

    在这里插入图片描述

  • git rm <文件名>------从本地仓库中删除指定文件,并将该删除操作提交到暂存区

    • git restore --staged <文件名>------将利用git rm <文件名>命令所删除的文件转移到工作区
    • git restore <文件名>------恢复在工作区的文件

    在这里插入图片描述

  • git rm -f <文件名>------删除文件

    • git restore --staged <文件名>------将利用git rm <文件名>命令所删除的文件转移到工作区
    • git restore <文件名>------恢复在工作区的文件

    在这里插入图片描述

创建目录、删除目录、恢复目录

手动创建一个名为a的目录,该目录下有两个子目录且有一个test.txt文件,且该目录已被放到版本库,如图所示

在这里插入图片描述

  • git rm -r <目录名> ------从已提交到本地仓库的版本区中完全删除指定目录及其子目录和文件,并将该删除操作提交到暂存区。

    • git restore --staged <目录名>------将被删除的目录从暂存区转移到工作区
    • git restore <目录名> ------将被删除的目录从工作区恢复

    在这里插入图片描述

Git全局设置
  • Git全局设置(桌面右键→Open Git Bash here)

    • 安装完Git后首先要设置用户名和email地址,因为每次Git提交都会使用该用户信息

      • 设置用户信息(用户信息自己可随意设置)

        git config --global user.name "自己的用户名"
        git config --global user.email "自己的邮箱地址"
        

        在这里插入图片描述

      • 查看配置信息

        git config --list
        

        在这里插入图片描述

远程仓库操作

命令解释
git remote查看所有远程仓库并显示其名称
git remote -v显示所有远程仓库的 URL
git remote add <name> <url>为本地仓库添加远程仓库并可选择是否为该远程仓库指定一个名字,url是远程仓库的地址
git remote rename <old_name> <new_name>重命名已经存在的远程仓库
git remote remove <name>git remote rm <remote_name>移除一个远程仓库(remote_name为git为远程仓库设置的名称)
git remote show <name>显示指定远程仓库的详细信息,如 URL 和跟踪分支
git clone <remote_repository_url> <local_directory>克隆指定的远程仓库到本地指定目录下
git clone -b <branch_name> <remote_repository_url>克隆远程仓库的指定分支到本地
git clone --depth <depth> <remote_repository_url>只克隆指定深度的历史记录。这个选项可以用于创建一个浅克隆,仅包含最新的提交记录,可以减少克隆所需的时间和空间
git clone --recursive <remote_repository_url>克隆远程仓库时同时克隆其子模块(如果有)
git pull <remote-name> <branch_name>用于从远程仓库拉取(fetch)最新项目文件并合并(merge)到本地仓库的命令。它实际上执行了两个操作:git fetchgit merge
git push <remote_name> <branch_name>将本地仓库的提交推送到远程仓库。<remote_name> 是远程仓库的名称(指git给远程仓库起的名称,默认是 origin),<branch_name> 是你要推送的本地分支名称
git remote------查看远程操作、添加远程仓库、移除远程仓库
  • 将远程仓库克隆到本地时,本地仓库的目录名字即为远程仓库的名字,但是git会将远程仓库的名称默认设置为origin,方便你在进行推送和拉取等操作时使用,如图所示

    在这里插入图片描述

  • 从本地初始化的git仓库执行git remote以及git remote -v命令时,并不会显示git对其的默认名称以及拉取url和推送url,原因是:这是通过本地创建的git仓库,并不是通过远程仓库克隆来的本地仓库,所以并没有与远程建立连接,也就没有任何信息,此时我们可以为其添加远程仓库,这样后期就可将本地仓库中的项目上传到远程仓库,如图所示

    在这里插入图片描述

  • 注意以上两种获取git仓库的方式在与远程仓库建立连接后也都可以移除与远程仓库建立的连接,此处以本地初始化的仓库为例,如图所示

    在这里插入图片描述

克隆远程仓库、推送到远程仓库
  • 克隆仓库命令格式:git clone remote_repository_url,此处以博主创建的远程仓库(名为:商城项目为例)

    • 将名为商城项目的远程仓库克隆到本地

      在这里插入图片描述

    • 将远程项目克隆到本地所产生的本地仓库会默认与远程仓库建立连接

      在这里插入图片描述

  • 将本地仓库推送到远程仓库 ------git push <remote_name> <branch_name>

    注意:将本地仓库推动到远程仓库时必须先将修改的文件先提交到暂存区,然后提交到本地仓库的版本库,最后才能提交到远程仓库

    • git push还支持的一些命令选项
      • -u--set-upstream:将本地分支与远程分支进行关联,以后可以直接使用 git push 推送代码。
      • -f--force:强制推送,即使远程仓库中有与本地仓库不同的提交历史,也会覆盖远程分支上的内容。慎用这个选项,因为它可能会导致数据丢失或冲突。
      • --all:推送所有分支到远程仓库。
    • 示例:在master分支中创建一个新文件test.txt并随便写一点内容,然后提交到本地仓库(要先将该文件提交到暂存区然后提交到本地仓库),最后推送到远程仓库。随后在本地仓库中的test.txt文件中再随便写点东西(即更新该文件),此时就需要重新将该文件提交到本地仓库,然后推送到远程仓库

    在这里插入图片描述

    • 注意事项
      • 第一次将本地仓库推送到远程仓库时需要进行身份认证,之后就不需要再次认证
      • 若想要将本地仓库推送到远程仓库则必须是该仓库的成员,且有权限
git pull------从远程仓库拉取更新后的项目
  • 假设现在有小李和小郭两个人共同操作商城项目(在电脑上克隆两个商城项目的远程仓库来模拟两人),此时假设小李对test.txt文件进行了修改(更改为:12345你好),则小李需要将该文件上传到远程仓库,然后小郭在从远程仓库拉取更新后的项目,这时小郭才能看到更新后的文件

    在这里插入图片描述

  • 若当前本地仓库不是从远程仓库克隆来的,而是本地创建的仓库,并且该仓库中存在文件

    • 此时若将该本地仓库推送到远程仓库:则先需要为本地仓库添加远程仓库,然后先将远程仓库拉取到本地,与本地项目合并更新后,再将本地仓库推送到远程仓库,否则会报错

      在这里插入图片描述

    • 但是单纯利用git pull <remote-name> <branch_name>命令从远程仓库拉取文件时也会报错,且报错为:fatal:refusing to merge unrelated histories

      在这里插入图片描述

      • 该问题解决方式:git pull命令后加入参数--allow-unrelated-historie,作用是允许用户在合并两个没有共同历史的分支时强制进行合并操作

      • git pull <remote-name> <branch_name> --allow-unrelated-histories,输入该命令并回车后进入一个新的命令窗口,该窗口是为了编辑meaasge,在该窗口中我们是无法直接输入的,需要输入一个i,在出现-- INSERT--后才可进行输入,输入完信息后按ESC即可退出编辑,退出编辑后-- INSERT--会消失,然后输入:wq回车即可退出该新的命令窗口,退出后即可从远程仓库完成拉取项目

        在这里插入图片描述

      • 将远程仓库拉取到本地后,虽然远程仓库的项目内容均已拉取到本地,但是本地仓库中原本的文件hello.txt并未在远程仓库,此时还需要将本地仓库推送到远程仓库,才能完成最终的仓库项目同步

        在这里插入图片描述

分支操作

  • 定义

    • 可以把工作从开发主线上分离开来,以免影响开发主线。同一个仓库可有多个分支,各个分支之间相互独立,互不干扰
  • 分支命令(需进到本地仓库内在git bash中执行)

    命令解释
    git branch查看本地仓库中所有分支,且当前所在的分支会被用*标记(注意:当前所在分支颜色会显示为绿色,而本地仓库中的其他分支则是白色)
    git branch -r查看远程仓库所有分支
    git branch -a查看本地仓库和远程仓库所有分支,且在本地仓库中当前所在的分支会被用*标记
    git branch <branch_name>在当前的提交位置创建一个名为branch_name的新分支(该命令只会创建分支并不会切换到新创建的分支上)
    git branch -d <branch_name>删除名为branch_name的分支(注意:若要删除的分支还没有合并到其他分支中,Git会警告并拒绝删除)
    git branch -m <old_branch_name> <new_branch_name>重命名分支
    git checkout <branch_name>git switch <branch_name>切换到名为branch_name的分支上
    git push <remote_name> <local_branch_name>:<remote_branch_name>将本地分支的更新推送(push)到远程仓库分支。<remote_name>:Git为远程仓库定义的远程仓库名称;<local_branch_name>:要推送的本地分支的名称;<remote_branch_name>:要推送到远程仓库的分支的名称。如果远程分支不存在,则会创建一个新的分支
    git merge <branch_name>合并分支:将名为<branch_name>的分支的更改合并到当前所在的分支中(注意:合并过程会将两个分支的更改结合起来,并生成一个新的提交来记录合并的结果。)
    git push <remote_name> --delete <分支名>删除远程仓库中的指定分支
示例

在Gitee上重新创建一个远程仓库,名为:rpeoDemo,并设置模板为readme文件,然后创建该仓库,仓库创建成功后如图二所示,最后将该远程仓库克隆到本地(命令略,克隆方法详见远程仓库操作),如图三

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意:当你在本地仓库中执行git clone命令克隆远程仓库时,Git会自动为你创建一个远程跟踪分支,其名称是origin/HEAD,并将其指向远程仓库的默认分支。这样做的目的是为了让Git知道远程仓库的默认分支是什么,从而在执行一些操作时,如git pull,可以自动地拉取或推送到默认分支(即主分支master或默认开发分支main)。

查看、创建、切换、推送分支(以示例为基础进行操作)
  • 查看分支

    在这里插入图片描述

  • 创建分支、切换分支、并将本地分支推送到远程仓库分支

    在这里插入图片描述

  • 本地仓库创建分支并将分支提交到远程仓库后,若在本地仓库的三个分支中分别创建文件且都提交到本地仓库的版本区后都推送到了本地仓库 ,则这时你利用git checkout命令切换分支时,本地仓库也会跟着切换分支;否则不会随着命令切换分支

    • 在三个分支中分别创建文件并推送到远程仓库,由图三可知推送成功

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    • 完成以上命令后,你在本地仓库中使用git checkout <branch_name>命令切换到某个分支时,本地仓库所在的目录也会随着切换到对应的分支,如图所示

      在这里插入图片描述

合并分支(以示例为基础进行操作)
  • 将本地仓库中的分支b1和b2均合并到本地仓库的主分支master下

    • 首先将分支切换到本地分支,然后利用git merge <branch_name>命令首先将b1分支合并到主分支下
      • 注意输入完合并命令时,会跳转到新的命令窗口界面(其实就是跟文件编辑界面一样),此时不要写东西(即合并信息),直接:wq保存并退出即可合并成功
    • 主分支合并b2分支也是同样道理,两个分支合并到主分支后,两个分支中的所有内容就都会到主分支中

    在这里插入图片描述

  • 问题

    • 若修改不同分支中相同的文件,再次进行分支合并时就会出现冲突(以主分支和b1分支中的文件b1.txt为例)

      • 该冲突为文件内容冲突,因为你修改了两个文件中的内容,此时需要手动去处理合并后的b1.txt文件
      • 处理完成后该文件处于工作区,需要将其推送到本地仓库,在利用git commit -m 命令推送时会报错cannot do a partial commit during a merge(在合并过程中不能进行部分提交),解决方法是在该命令最后加上-i即可

      在这里插入图片描述

      在这里插入图片描述

标签操作

  • 定义

    Git中的标签指的是某个分支在某个特定时间点的状态。通过标签可以方便的切换到标记时的状态

    • 该功能可用来标记发布结点(v1.0、v1.2等),如下mybatis-plus标签所示

    在这里插入图片描述

  • 命令

    命令解释
    git tag列出已有标签
    git tag <lable_name>创建标签
    git push <remote_name> <lable_name>将标签推送至远程仓库
    git checkout -b <branch_name> <lable_name>检出标签(即新创建一个名为branch_name的分支,该分支保存名为lable_name标签那时刻的代码(即保存那个时刻的项目版本))。该命令执行成功后本地仓库会自动切换到名为branch_name的分支,且该分支为对应名为lable_name标签那个时刻的项目代码
示例

以在分支操作中的repo-demo仓库最终版为例(详见图1、2、3)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 查看、创建、推送标签

    在这里插入图片描述

  • 检出标签

在这里插入图片描述

IDEA中配置Git

  • IDEA中配置Git

  • 步骤:File→Settings→Version Control→Git→Path to Git executable(配置文件路径)

在这里插入图片描述

IDEA中使用Git

获取Git仓库

  • IDEA中使用Git获取仓库的方式一 ------ 本地初始化仓库

    • 创建一个基础的Maven项目模板,然后 VCS(即版本控制) → Create Git Repository(即创建Git仓库)

      在这里插入图片描述

    • 在弹出的新窗口中选则当前项目目录(即MavenDemoOne)作为Git仓库目录

      在这里插入图片描述

    • 创建完成后可看到该项目的目录中出现.git隐藏文件代表该项目已被作为Git仓库,此时IDEA界面会出现Git的操作按钮,如图二所示

      在这里插入图片描述

      在这里插入图片描述

    • 从上图中可看出本地初始化仓库后会有两个文件为红色,原因是这个两个文件在工作区,将其提交到暂存区后会变为绿色,最终推送到本地版本库后会变为黑色

  • IDEA中使用Git获取仓库的方式二 ------ 从远程仓库克隆到已有项目中

    • 创建一个基础的Maven项目模板,然后 VCS(即版本控制) → Get from Version Control

      在这里插入图片描述

  • IDEA中使用Git获取仓库的方式三 ------从远程仓库克隆到新建项目中

    • Get from VCS → 在弹出界面输入对应远程仓库的url并设置克隆到本地的位置目录(如图一所示),最后单击Clone即可克隆成功(如图二所示)

      在这里插入图片描述

      在这里插入图片描述

  • 从远程仓库克隆成功时会有一个.gitignore文件,它的作用是定义当前仓库中的哪些文件不需要Git管理(也就是说你不要管它,不要去动那些不需要Git管理的文件)

本地仓库的操作

  • 将文件加入暂存区

    • 自动加入到暂存区—在你创建java文件时会自动弹出对话框来让你添加到暂存区

      在这里插入图片描述

    • 手动加入到暂存区------右键java文件→Git→Add即可加入到暂存区

      在这里插入图片描述

    • 已加入到暂存区的文件会变为绿色

      在这里插入图片描述

  • 将暂存区单个文件提交到版本库

    • 右键要提交的文件→Git→Commit File,如下图所示

      在这里插入图片描述

    • IDEA左侧仓库项目目录变为如图所示,跟着图中步骤操作即可完成提交

      在这里插入图片描述

    • 提交完成后,已在版本库的文件会变为黑色

      在这里插入图片描述

    • 注意:若对已提交到版本库的文件未作任何更改,此时则无法提交

      在这里插入图片描述

  • 将暂存区多个文件提交到版本库

    • 右键要提交的文件所在目录→Git→Commit File,如下图所示

      在这里插入图片描述

    • IDEA左侧仓库项目目录变为如图所示,跟着图中步骤操作即可完成提交

      在这里插入图片描述

    • 提交完成后,已在版本库的文件会变为黑色

      在这里插入图片描述

    • 注意:若对已提交到版本库的文件未作任何更改,此时则无法提交。与提交单个文件不同的是它的Commit Directory仍可正常选中(如图一所示),但是在提交页面不会显示未作更改的文件,也就意味着无法提交(如图二所示)

      在这里插入图片描述

      在这里插入图片描述

  • 查看日志

    • 单击IDEA左下角的图标即可显示所有版本,如图所示

      在这里插入图片描述

  • 注意

    • 在IDEA中你对已提交到暂存区的文件进行修改后,不需要先将其从工作区重新加入到暂存区,因为IDEA会自动将修改后的文件从工作区加入到暂存区
    • 若想要将已加入到暂存区的更改后的文件提交到版本库,只需要直接提交即可

远程仓库的操作一

  • 查看并添加远程仓库

    • 右键本地仓库项目名箭→Git→Manage Remotes,此时即可在弹出的Git Remotes框中看到本地仓库所关联的远程仓库,若无关联的远程仓库,单击+即可添加远程仓库,如图所示

      在这里插入图片描述

    • 注意:一个本地仓库可对应多个远程仓库

    • 此处以与博主的远程仓库建立关联为例来继续后续的演示,如图所示

      在这里插入图片描述

  • 推送至远程仓库

    • 右键本地仓库项目→Git→Push (如图一所示) 或者IDEA最上方master → Push(如图二所示)

      在这里插入图片描述

      在这里插入图片描述

    • 然后会弹出新框,单击Push Anyway按钮即可推送成功

      在这里插入图片描述

  • 提交到本地版本库的同时并推送至远程仓库

    • 打开Commit界面,右下角有个Commit and Push按钮,单击即可提交的同时将其推送到远程仓库,如图所示

      在这里插入图片描述

  • 从远程仓库拉取方式一

    • 右键本地仓库的项目→ Git→Pull→选中要拉取的远程仓库及对应分支单击Pull即可拉取成功

      在这里插入图片描述

      在这里插入图片描述

  • 从远程仓库拉取方式二

    • 选中IDEA界面最上方的master→Update Project(如图一所示),在弹出的框中选中第一个,然后单击OK即可拉取成功(如图二所示)

      在这里插入图片描述

      在这里插入图片描述

远程仓库的操作二

在远程操作一中只是正常演示了几个重要过程的操作,最终并未运行成功,原因是:

当前本地仓库MavenDemoOne不是从远程仓库克隆来的,而是本地创建的仓库,并且该仓库中存在文件此时若将该本地仓库推送到远程仓库:则先需要为本地仓库添加远程仓库,然后先将远程仓库拉取到本地,与本地项目合并更新后,再将本地仓库推送到远程仓库,否则会报错

  • 简略步骤

    • 将本地仓库中未在版本库的文件推送到版本库(步骤略)

    • 在本地仓库目录下打开Git Bash,输入git pull origin master --allow-unrelated-histories来将两个没有共同历史的分支进行强制合并操作

      在这里插入图片描述

    • 然后即可在IDEA中通过将本地仓库推送到远程仓库的步骤,完成最终的仓库项目同步,完成后Gitee上如图所示同步成功

      在这里插入图片描述

IDEA中的分支操作

  • 查看分支并创建分支

    • 方式一:如图所示

      在这里插入图片描述

    • 方式二:如图所示

      在这里插入图片描述

    • 方式三:单击IDEA顶部的master按钮即可显示分支

      在这里插入图片描述

    • 以上三种方式创建分支会自动切换到所创建的分支,因为创建的分支是基于master分支创建的,所该分支中项目内容与master主分支中项目内容是一样的,如图所示

      在这里插入图片描述

  • 切换分支

    在这里插入图片描述

  • 将分支推送到远程仓库(以b1分支为例),如图一、图二所示

    在这里插入图片描述

    在这里插入图片描述

  • 合并分支(举例说明)

    • 在b1分支下创建一个新的类TestControllerFour,并将其推送到本地的版本库,然后推送到远程仓库的b1分支,推送成功后如图所示

      在这里插入图片描述

    • 切换为master分支,如图所示

      在这里插入图片描述

    • 将b1分支合并到master分支中,如图一、图二所示

      在这里插入图片描述

      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【嵌入式开发】SecureCRTPortable工具进行串口信息监听打印

SecureCRTPortable工具进行串口信息监听打印 一、什么是SecureCRT二、如何使用SecureCRT进行串口监听1、硬件连接2、驱动安装3、软件连接4、串口连接5、日志设置 近期发现许多小伙伴欠缺SSH工具使用基础&#xff0c;工欲善其事&#xff0c;必先利其器&#xff0c;这里奉上使用教…

股票战法课程之主力的痕迹

文章目录 1. 主力的操作痕迹2. 主力的建仓2.1 建仓的三种方式2.2 建仓的五个特点2.3 建仓的迹象2.4 建仓的成交量特征 1. 主力的操作痕迹 序号痕迹原因1不跟随大盘节奏筹码都在主力手中2突发利空消息&#xff0c;股价不跌反涨主力被套&#xff0c;不希望散户抛盘3很小的成交量…

【Spring】Spring MVC入门

Spring MVC入门 一、什么是Spring Web MVC&#xff1f; 1.1 MVC定义 MVC是Model View Controller的缩写&#xff0c;是一种软件架构的设计模式&#xff0c;将软件系统分为模型、视图、控制器三个部分。 示意图如下: 可以看到&#xff0c;Controller作为一个“粘合剂”处于M…

Go 单元测试之mock接口测试

文章目录 一、gomock 工具介绍二、安装三、使用3.1 指定三个参数3.2 使用命令为接口生成 mock 实现3.3 使用make 命令封装处理mock 四、接口单元测试步骤三、小黄书Service层单元测试四、flags五、打桩&#xff08;stub&#xff09;参数 六、总结6.1 测试用例定义6.2 设计测试用…

详细分析Mysql常用函数(附Demo)

目录 前言1. 聚合函数2. 字符串函数3. 日期函数4. 条件函数5. 数值函数6. 类型转换函数 前言 由于实战中经常运用&#xff0c;索性来一个总结文 创建一个名为 employees 的表&#xff0c;包含以下字段&#xff1a; employee_id&#xff1a;员工ID&#xff0c;整数类型 first…

Linux的图形资源及指令

一、火车 1.切换到超级用户 su 2.下载资源 yum install -y sl 3.输入指令 sl&#xff0c;得到火车图形 如果没有得到该图形&#xff0c;就将2处改为yum install -y epel-release。 二、Linux的logo 1.在超级用户模式下下载资源 yum install -y linux_logo 2.输…

物联网(iot)深度解析——FMEA软件

物联网即IoT&#xff0c;是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术&#xff0c;实时采集任何需要监控、连接、互动的物体或过程&#xff0c;采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息&#xff0c;通过…

C语言——字符函数与字符串函数

正文开始&#xff1a;在编程过程中&#xff0c;我们经常要处理字符和字符串&#xff0c;为了方便操作字符和字符串&#xff0c;C语⾔标准库中提供了 一系列库函数&#xff0c;接下来我们就学习⼀下这些函数。 1. 字符分类函数 C语⾔中有⼀系列的函数是专门做字符分类的&#…

android远程更新下载apk

最近业务有涉及到&#xff0c;奈何是个app代码小白&#xff0c;遂记录一下 一&#xff1a;AndroidManifest.xml文件配置 application标签里面加上 android:networkSecurityConfig"xml/network_config" <!-- app下载更新配置--> <uses-permission andr…

【Qt 学习笔记】Qt常用控件 | 显示类控件Progress Bar的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 显示类控件Progress Bar的使用及说明 文章编号&#xff…

网络防火墙技术知多少?了解如何保护您的网络安全

在当前以网络为核心的世界中&#xff0c;网络安全成为了至关重要的议题。网络防火墙是一种常见的保护网络安全的技术&#xff0c;用于监控和控制网络流量&#xff0c;阻止未经授权的访问和恶意活动。今天德迅云安全就带您了解下防火墙的一些相关功能和类型。 防火墙的五个功能…

(助力国赛)数学建模可视化!!!含代码1(折线图、地图(点)、地图(线)、地图(多边形)、地图(密度)、环形图、环形柱状图、局部放大图)

众所周知&#xff0c;数学建模的过程中&#xff0c;将复杂的数据和模型结果通过可视化图形呈现出来&#xff0c;不仅能够帮助我们更深入地理解问题&#xff0c;还能够有效地向评委展示我们的研究成果。   今天&#xff0c;作者将与大家分享8种强大的数学建模可视化图形及其在…

.Net RabbitMQ(消息队列)

文章目录 一.RabbitMQ 介绍以及工作模式1.RabbitMQ的介绍&#xff1a;2.RabbitMQ的工作模式&#xff1a; 二.RabbitMQ安装1.安装Erlang语言环境2.安装RabbitMQ 三.在.Net中使用RabbitMQ1.HelloWorld模式2.工作队列模式3.发布订阅模式4.Routing路由模式和Topics通配符模式 一.Ra…

使用Python工具库SnowNLP对评论数据标注(二)

这一次用pandas处理csv文件 comments.csv import pandas as pd from snownlp import SnowNLPdf pd.read_csv("C:\\Users\\zhour\\Documents\\comments.csv")#{a: [1, 2, 3], b: [4, 5, 6], c: [7, 8, 9]}是个字典 emotions[] for txt in df[sentence]:s SnowNLP(…

Kali Linux扩容(使用图形化界面)

因为今天在拉取vulhub中的镜像的时候报错空间不够&#xff0c;因为最开始只给了20GB的空间&#xff0c;所以现在需要扩容了&#xff0c;结合了一下网上的找到了简便的解决方法 1.首先虚拟机设置->磁盘->扩展 小插曲&#xff1a;在对虚拟机磁盘进行扩容以后&#xff0c;…

linux启动minicom、u-boot的常用命令、网络命令tftp、nfs/根文件系统、u-boot的bootargs环境变量

linux启动minicom sudo minicom -con进入minicom界面&#xff1a; 打开单片机 在打开之后&#xff0c;我们通过 printenv查看环境配置 在修改配置之前&#xff0c;我们最好先将环境初始化一下&#xff0c;初始化代码为 nand erase.chipu-boot的常用命令 尽管u-boot是一个…

ObjectMapper解析JSON数据

ObjectMapper的作用 1.背景&#xff1a; 当我们调用API的时候捕获的数据&#xff0c;往往需要结合文档所定义的类进行转换&#xff0c;也就是Java对象与JSON 字符串之间的转换 2.作用&#xff1a; ObjectMapper 是 Jackson 库中的一个关键类&#xff0c;它的作用是将 JSON 数据…

第七周学习笔记DAY.4-方法重写与多态

学完本次课程后&#xff0c;你能够&#xff1a; 实现方法重写 深入理解继承相关概念 了解Object类 会使用重写实现多态机制 会使用instanceof运算符 会使用向上转型 会使用向下转型 什么是方法重写 方法的重写或方法的覆盖&#xff08;overriding&#xff09; 1.子类根据…

【Python系列】非异步方法调用异步方法

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

C语言学习/复习23---

一、数据的存储 二、数据类型的介绍 三、整型在内存中的存储 将原码转换为补码。如果数是正数&#xff0c;则补码与原码相同&#xff1b;如果数是负数&#xff0c;则先将原码按位取反&#xff0c;然后加1。将补码转换原补码。如果数是正数&#xff0c;则补码与原码相同&#x…