大数据------额外插件及技术------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分支中,如图一、图二所示

      在这里插入图片描述

      在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python文件处理--进阶

Python标准库文件操作相关模块&#xff1a; 1.使用pickle序列化 序列化指的是&#xff1a;将对象转化成“串行化”数据形式&#xff0c;存储到硬盘或通过网络传输到其他地方。反序列化是指相反的过程&#xff0c;将读取到的“串行化数据”转化成对象。我们可以使用pickle模块…

算法部署 | 使用TensorRT部署AlphaPose姿态估计算法

项目应用场景 面向 AlphaPose 姿态估计算法的推理加速场景&#xff0c;项目采用 TensorRT 进行 GPU 算法加速推理。 项目效果 项目细节 > 具体参见项目 README.md (1) 模型转换 python pytorch2onnx.py --cfg ./configs/coco/resnet/256x192_res50_lr1e-3_1x.yaml --chec…

基于Springboot的简历系统

基于SpringbootVue的简历系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 简历模板 招聘会 求职论坛 系统公告 后台登录 后台首页 用户管理 简历模板 模板…

面试八股——JVM★

类加载 类加载器的定义 类加载器的类别 类装载的执行过程 类的装载过程&#xff1a; 加载&#xff1a; 验证&#xff1a; 准备&#xff1a; 这里设置初始值并不是传统意义的设置初始值&#xff08;那个过程在初始化阶段&#xff09;。 解析&#xff1a; 初始化&#xff1a; …

YOLOv8改进 | Conv篇 | CVPR2024最新DynamicConv替换下采样(包含C2f创新改进,解决低FLOPs陷阱)

一、本文介绍 本文给大家带来的改进机制是CVPR2024的最新改进机制DynamicConv其是CVPR2024的最新改进机制&#xff0c;这个论文中介绍了一个名为ParameterNet的新型设计原则&#xff0c;它旨在在大规模视觉预训练模型中增加参数数量&#xff0c;同时尽量不增加浮点运算&#x…

servlet的三个重要的类(httpServlet 、httpServletRequst、 httpServletResponse)

一、httpServlet 写一个servlet代码一般都是要继承httpServlet 这个类&#xff0c;然后重写里面的方法 但是它有一个特点&#xff0c;根据之前写的代码&#xff0c;我们发现好像没有写main方法也能正常执行。 原因是&#xff1a;这个代码不是直接运行的&#xff0c;而是放到…

气象观测站点数据下载与处理

一、下载途径 全国400多个气象站气候数据&#xff08;1942-2022&#xff09; 王晓磊&#xff1a;中国空气质量/气象历史数据 | 北京市空气质量历史数据 气象数据免费下载网站整理 中国气象站观测的气象数据怎么下载 二、R语言处理 2.1 提取站点文件 library(dplyr) library(…

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

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

解决VirtualBox虚拟机启动失败的问题

一.出现的问题&#xff08;未能启动虚拟电脑&#xff0c;由于物理网卡未找到&#xff09; 一、错误信息分析 “未能启动虚拟电脑&#xff0c;由于物理网卡未找到”&#xff1a;这个错误通常是由于VirtualBox无法识别或连接到物理网卡造成的。可能是由于驱动程序问题、网络设置错…

2024年阿里云最便宜的轻量应用服务器与云服务器价格及优惠购买入口

2024年&#xff0c;阿里云推出了几款价格最便宜的轻量应用服务器和云服务器&#xff0c;其中轻量应用服务器2核2G3M公网带宽50GB 高效云盘活动价格61元1年&#xff0c;经济型e实例4核16G10M公网带宽100G ESSD Entry云盘活动价格最低只要30元/1个月&#xff0c;通用算力型u1实例…

pyskl手势/动作识别的实现与pytorch cuda环境部署保姆教程

恭喜你&#xff0c;找到这篇不需要翻墙就能够成功部署的方法。在国内布置这个挺麻烦的&#xff0c;其他帖子会出现各种问题不能完全贯通。便宜你了。。 实话5年前我用1080训练过一个基于卷积和ltsm的手势识别&#xff0c;实话实说感觉比现在效果好。是因为现在的注意力都在tra…

【Spring】Spring MVC入门

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

Hadoop——Yarn基础架构

Hadoop——Yarn基础架构 Hadoop YARN&#xff08;Yet Another Resource Negotiator&#xff09;是Apache Hadoop生态系统中的一个子项目&#xff0c;它是用于集群资源管理的框架&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式的操作系统平台&…

Mac 利用Homebrew安装JDK

一、安装JDK17 1.安装openjdk17 2.把homebrew安装的openjdk17软链接到系统目录&#xff1a; brew install openjdk17 sudo ln -sfn $(brew --prefix)/opt/openjdk17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk 一、检查是否安装成功 在Termina…

基于SSM的列车订票管理系统(含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的列车订票管理系统3拥有两种角色&#xff1b;管理员、用户 管理员&#xff1a;用户管理、车票管理、购票指南管理、系统管理等 用户&#xff1a;发布帖子、登录注册、购票等 1.…

Spring Boot 整合 Mockito:提升Java单元测试的高效实践

引言 在Java开发领域&#xff0c;Spring Boot因其便捷的配置和强大的功能而受到广泛欢迎&#xff0c;而Mockito作为一款成熟的单元测试模拟框架&#xff0c;则在提高测试质量、确保代码模块间解耦方面扮演着至关重要的角色。本文将详细介绍如何在Spring Boot项目中整合Mockito&…

千锤百炼算法系列之动态规划

题外话 这段时间,我必须把算法弄明白 这篇直接讲解动态规划所有细节! 前面那篇 千锤百炼之每日算法(一)-CSDN博客 也有关于动态规划的讲解,也非常详细 很简单,我成尊不就是了?!!! 正题 动态规划 这里我们主要是让大家明白什么是动态规划,怎么用动态规划解题 我就不用…

手动给docusaurus添加一个搜索

新版博客用docusaurus重构已经有些日子了&#xff0c;根据docusaurus的文档上也申请了Algolia,想一劳永逸的解决博客的搜索问题。但是流水有意&#xff0c;落花无情。 algolia总是不给我回复&#xff0c;我只能对着algolia的申请页面仰天长叹。 正常情况的申请 按照docusaur…

社区论坛小圈子小程序源码系统:自定义小程序管理社区圈子软件圈子系统系统开发-做社区圈子丨圈子论坛社区交友系统开源版小程序源码丨

简述 移动互联网的快速发展&#xff0c;微信小程序作为一种新型的应用形态&#xff0c;已经深入到人们的生活中。特别是对于社区论坛类应用&#xff0c;小程序版本可以更好地满足用户快速、便捷获取信息的需求。下面给大家分享一款社区论坛小圈子小程序源码系统。 在这个信息…

跨境电商MercadoLibre(美客多)平台预约号操作流程自动化系统

目录 一、前置配置准备 1. 安装Chrome插件 2. 添加预约配置 二、开始使用 MercadoLibre&#xff08;美客多&#xff09;于2021年10月18号上线了新预约入仓系统&#xff0c;在MercadoLibre美客多平台上&#xff0c;新入仓预约系统是一项非常重要的功能&#xff0c;它可以帮助…