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

news2024/11/26 14:56:53

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.coloradmin.cn/o/1606847.html

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

相关文章

【深度学习】Attention、Self-Attention、Multi-Head Attention

一、Attention 在CV领域&#xff0c;注意力机制通常分为通道注意力和空间注意力或者两者结合。 一张图像经backbone得到的特征通常包括多个通道&#xff0c;每个通道是一个像素矩阵&#xff0c;每个通道对任务的贡献不尽相同&#xff0c;单个通道的特征图中每个像素对任务的贡…

户外旅行摄影手册,旅游摄影完全攻略

一、资料前言 本套旅游摄影资料&#xff0c;大小295.47M&#xff0c;共有9个文件。 二、资料目录 《川藏线旅游摄影》杨桦.彩印版.pdf 《户外摄影指南》(Essential.Guide.to.Outdoor.photography.amateur)影印版.pdf 《旅行摄影大师班》(英)科尼什.扫描版.PDF 《旅行摄影…

Java垃圾回收1

1.对象什么时候可以被垃圾器回收 1.垃圾回收的概念 为了让程序员更专注于代码的实现&#xff0c;而不用过多的考虑内存释放的问题&#xff0c;所以&#xff0c; 在Java语言中&#xff0c;有了自动的垃圾回收机制&#xff0c;也就是我们熟悉的GC(Garbage Collection)。 有了垃圾…

网络编程ServerSocketChannel

ServerSocketChannel 1 非阻塞 vs 阻塞1.1 阻塞1.2 非阻塞1.3 多路复用 2 Selector2.1 创建2.2 绑定 Channel 事件2.3 监听 Channel 事件2.4 &#x1f4a1; select 何时不阻塞 3 处理 accept 事件&#x1f4a1; 事件发生后能否不处理 4 处理 read 事件4.1 &#x1f4a1; 为何要…

vscode绿绿主题setting config

下载插件Green Tree Theme 选greentree ctrl shift p找到setting {"workbench.colorTheme": "Green Tree","editor.fontSize": 16.5, // 字号"workbench.colorCustomizations": {"[Green Tree]": {"activityBarBadge.…

【Lattice FPGA 开发】Modelsim与Diamond联合仿真

本文讲解Modelsim与Diamond进行联合仿真步骤&#xff0c;以及对遇到问题的解决与说明。 文章目录 软件版本0. Diamond设置文件为仿真文件特别注意 1. Diamond设置仿真软件为Modelsim2. Modelsim编译Lattice的库文件2.1 新建文件夹存放库文件2.2 Modelsim中建立新的仿真库2.2.1…

探秘Redis:从数据类型到API

欢迎大家关注我的微信公众号“软件求生”,我们将会定期为大家带来更多有趣的技术分享和实用的开发技巧。感谢大家的支持! 大家好,我是小米,今天我们来聊一聊阿里巴巴面试中经常会遇到的一个热门话题——Redis数据类型和相关API。Redis作为一款高性能的键值对存储数据库,其…

LevelDB源码阅读笔记(1、整体架构)

LevelDB源码阅读笔记&#xff08;1、整体架构&#xff09; LeveDB源码笔记系列&#xff1a; LevelDB源码阅读笔记&#xff08;0、下载编译leveldb&#xff09; LevelDB源码阅读笔记&#xff08;1、整体架构&#xff09; 前言 对LevelDB源码的博客&#xff0c;我准备采用总…

HZNUCTF第五届校赛实践赛初赛 Web方向 WriteUp

ezssti 很简单的ssti 源码给了&#xff0c;调用Eval即可执行命令 package mainimport ("fmt""net/http""os/exec""strings""text/template" )type User struct {Id intName stringPasswd string }func (u User) Ev…

短视频去水印解析接口 可测试

短视频解析聚合接口80多个热们短视频平台。可测试 接口开发文档&#xff1a; 返回格式&#xff1a; JSON 请求方式&#xff1a; GET/POST 示例请求地址&#xff1a;https://www.dspqsy.vip/spapi?keykey&url短视频url 请求参数说明&#xff1a; 字段必填类型说明url是…

Golang | Leetcode Golang题解之第36题有效的数独

题目&#xff1a; 题解&#xff1a; func isValidSudoku(board [][]byte) bool {var rows, columns [9][9]intvar subboxes [3][3][9]intfor i, row : range board {for j, c : range row {if c . {continue}index : c - 1rows[i][index]columns[j][index]subboxes[i/3][j/3]…

2021年全国大学生电子设计竞赛D题——基于互联网的摄像测量系统(二)

09 电路设计 前面介绍了系统的硬件框图如下&#xff1a; 硬件基本分为三块&#xff0c;两个摄像节点&#xff0c;一个终端节点。 1. 摄像节点硬件 摄像节点由一个DE10-Nano开发板和一个D8M摄像头实现&#xff0c;DE10-Nano开发板的HDMI接口外接HDMI显示器来显示拍摄到的视频。…

Linux下SPI设备驱动实验:验证读写SPI设备中数据的函数功能

一. 简介 前面文章实现了 SPI设备驱动框架&#xff0c;并在此基础上添加了字符设备驱动框架&#xff0c;实现了读 / 写SPI设备中数据的函数&#xff0c;文章如下&#xff1a; Linux下SPI设备驱动实验&#xff1a;向SPI驱动框架中加入字符设备驱动框架代码-CSDN博客 Linux下…

基于springboot实现工程教育认证的计算机课程管理平台项目【项目源码+论文说明】

基于springboot实现计算机课程管理平台系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于工程教育认证的计算机课程管理平台的开发全过程。通过分析基于工程教育认证的计算机课程管理平台管理的不足…

opencv | 编译缺失ippicv相关文件解决方案

1.执行cmake后&#xff0c;查看控制台输出信息 ~/VM_data/opencv-4.9.0$ cd buile_temp ~/VM_data/opencv-4.9.0/buile_temp$ cmake ..2.去浏览器打开链接&#xff0c;下载对应的压缩包&#xff0c;解压到 路径&#xff1a;/3rdparty/ippicv/

【Canvas技法】四条C形色带填满一个圆/环形

【关键点】 通过三角函数计算控制点的位置。 【成果图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>四条C形色带填满一个…

2024华中杯C题平面曲线重建思路

华中杯数学建模思路 光纤传感技术是伴随着光纤及光通信技术发展起来的一种新型传感器技 术。它是以光波为传感信号、光纤为传输载体来感知外界环境中的信号&#xff0c;其基本原理是当外界环境参数发生变化时&#xff0c;会引起光纤传感器中光波参量&#xff08;如波长、相位、…

IDEA使用SCALA

一、在IDEA中下载插件 在设置->插件中找到scala&#xff0c;并下载。 下载完成后重启idea 二、在idea中创建spark的RDD操作项目 新建项目选中Scala。 创建完成后为项目添加java包&#xff0c;这个添加的是spark安装包中jars目录下的所有jar包 然后编写RDD操作 import or…

24年蓝桥杯java-b组

24年蓝桥杯javaB组 蓝桥杯在昨天考完了&#xff0c;结果很不乐观&#xff0c;哎&#xff0c;还是太笨了&#xff0c;脑子确实转的慢&#xff1b;&#x1f625; 本篇博客中解题思路和代码并不一定完全正确&#xff0c;是我和同学们讨论的解答方法&#xff0c;但并未使用官方题…

Sharding-JDBC笔记1

Sharding-JDBC笔记1 1.分库分表1.1 垂直分库1.2 垂直分表1.3 水平分库1.4 水平分表 2.存在问题2.1 事务一致性2.2 跨节点关联查询2.3 跨节点分页、排序函数2.4 主键避重2.5 公共表 1.分库分表 分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题&#xff0c;将原来…