JavaWeb-Git使用教程

原文:https://blog.csdn.net/qq_43492477/article/details/120192647


一、Git分布式版本控制工具

1.1 Git历史

Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。
到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。
他们对新的系统制订了若干目标:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

1.2 Git与SVN对比

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。

集中式版本控制工具缺点:

  • 服务器单点故障
  • 容错性差

Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS) ,分为两种类型的仓库:本地仓库远程仓库

  • 本地仓库:是在开发人员自己电脑上的Git仓库
  • 远程仓库:是在远程服务器上的Git仓库
  • Clone:克隆,就是将远程仓库复制到本地
  • Push:推送,就是将本地仓库代码上传到远程仓库
  • Pull:拉取,就是将远程仓库代码下载到本地仓库

1.3 Git工作流程

工作流程如下:

  • 1.从远程仓库中克隆代码到本地仓库
  • 2.从本地仓库中checkout代码然后进行代码修改
  • 3.在提交前先将代码提交到暂存区
  • 4.提交到本地仓库。本地仓库中保存修改的各个历史版本
  • 5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库

1.4 Git下载与安装

下载地址: https://git-scm.com/download

在这里插入图片描述

下载完成后可以得到如下安装文件:

在这里插入图片描述

二、Git代码托管服务

2.1 常用的Git代码托管服务

前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。

  • gitHubhttps://github.com )是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub。
  • 码云https://gitee.com )是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快。
  • GitLabhttps://about.gitlab.com )是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

2.2 在码云注册账号

要想使用码云的相关服务,需要注册账号(https://gitee.com/signup

![在这里插入图片描述]( https://img-blog.csdnimg.cn/33480e65ec574261a8728a6b796af5bf.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

2.3 登录码云并创建Git远程仓库

注册完成后就可以使用刚刚注册的邮箱进行登录(https://gitee.com/login

![在这里插入图片描述]( https://img-blog.csdnimg.cn/25f342b3938b438daeb291847ea4b1b3.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

登录成功后就可以创建Git远程仓库

![在这里插入图片描述]( https://img-blog.csdnimg.cn/1c40249e8c7c49b986fa21781fb093da.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/a335bd1d0b744933b8ad3260daa52021.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

创建完成后可以查看仓库信息

![在这里插入图片描述]( https://img-blog.csdnimg.cn/40574df938fc4c7b934cb2ca4296e45a.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

每个Git远程仓库都会对应一个网络地址,可以点击克隆/下载按钮弹出窗口并点击复制按钮获得这个网络地址

![在这里插入图片描述]( https://img-blog.csdnimg.cn/d2951c4880a94adf8245c91e7f5cf83b.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)
创建的Git远程仓库对应的地址模板为:https://gitee.com/账号/仓库名.git

2.4 邀请其他用户成为仓库成员

前面已经在码云上创建了自己的远程仓库,目前仓库成员只有自己一个人(身份为管理员)。在企业实际开发中,一个项目往往是由多个人共同开发完成的,为了使多个参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。

![在这里插入图片描述]( https://img-blog.csdnimg.cn/3ad684877cd2427b82ba3fe718f385ed.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

三、Git常用命令

3.1 环境配置

当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。(鼠标右键,Git Base Here)

  • 设置用户信息
   git config --global user.name "注册的账户"

   git config --global user.email "绑定的邮箱"
123
  • 查看配置信息
   git config --list

   git config user.name
123

通过上面的命令设置的信息会保存在C:\Users\Administrator.gitconfig文件中。

3.2 获取Git仓库方式

要使用Git对我们的代码进行版本控制,首先需要获得Git仓库。

获取Git仓库通常有两种方式:

  • 在本地初始化一个Git仓库
  • 从远程仓库克隆

3.2.1在本地初始化一个Git仓库

执行步骤如下:

  1. 在电脑的任意位置创建一个空目录(例如repo1)作为我们的本地Git仓库。
  2. 进入这个目录中,点击右键打开Git Bash Here窗口。
  3. 执行命令git init

![在这里插入图片描述]( https://img-blog.csdnimg.cn/fb1b64b9600d4aeab9c0d562e46f8f04.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功

![在这里插入图片描述]( https://img-blog.csdnimg.cn/35cf91cd2d6c487a8735bde486b1befb.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

3.2.2从远程仓库克隆

可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地。

命令形式为:git clone 远程Git仓库地址

![在这里插入图片描述]( https://img-blog.csdnimg.cn/4ea746cdd4ad497e84fb352b23240d3b.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

3.3工作目录、暂存区以及版本库概念

为了更好的学习Git,我们需要了解Git相关的一些概念,这些概念在后面的学习中会经常提到

版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码

暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

在这里插入图片描述

3.4 Git工作目录下文件的两种状态

Git工作目录下的文件存在两种状态:

  • untracked:未跟踪(未被纳入版本控制)

  • tracked

    :已跟踪(被纳入版本控制)

    • Unmodified:修改状态
    • Modified:已修改状态
    • Staged:已暂存状态

这些文件的状态会随着我们执行Git的命令发生变化。

3.5 本地仓库操作

已修改的文件需要先添加到暂存区,才能提交到本地仓库

  • git rm删除文件

在这里插入图片描述

  • 删除文件后,git status查看文件状态
    在这里插入图片描述
  • 上面删除的只是工作区的文件,需要提交到本地仓库
    在这里插入图片描述
  • 如果直接在仓库中删除一个文件(没有用命令),删除之后我们查看一下状态

![在这里插入图片描述]( https://img-blog.csdnimg.cn/04df83d93c7143468054e93c3c88780a.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

因为没有在暂存区所以没法提交,我们可以提交,在查看状态。看执行结果

所以对于这种手动删除文件的操作,我们需要先添加到暂存区,再执行提交操作,才能删除

  • 将文件添加至忽略列表

    一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:

# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
123456789101112

![在这里插入图片描述]( https://img-blog.csdnimg.cn/965e248787454eea9ec64c8abc6e9fee.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

点击回车看日志后面信息,点击q退出查看日志。

3.6 远程仓库操作

前面执行的命令操作都是针对的本地仓库,本章节我们会学习关于远程仓库的一些操作,具体包括:

3.6.1查看远程仓库

如果想查看已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出指定的每一个远程服务器的简写。 如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字。

  • 查询的该仓库为从远程仓库上克隆的仓库git remotegit remote -vgit remote show origin

![在这里插入图片描述]( https://img-blog.csdnimg.cn/c30abd0197204afcad7dc85083132d7c.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

如果是自己在本地创建的仓库,查询结果如下
在这里插入图片描述

3.6.2 添加远程仓库

运行git remote add <shortname> <url>添加一个新的远程 Git 仓库,同时指定一个可以引用的简写

在这里插入图片描述

也可以添加多个远程仓库,远程仓库可以用一个,也可以是多个。仓库名称需要不一样。

3.6.3 从远程仓库克隆

如果你想获得一份已经存在了的 Git 仓库的拷贝,这时就要用到 git clone 命令。 Git 克隆的是该 Git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。 当你执行 git clone 命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。

克隆仓库的命令格式是git clone [url]
![在这里插入图片描述]( https://img-blog.csdnimg.cn/b2a71b5002024c1fb92604c467ab7671.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

3.6.4 移除无效的远程仓库

如果因为一些原因想要移除一个远程仓库 ,可以使用git remote rm

![在这里插入图片描述]( https://img-blog.csdnimg.cn/b0cc42acc0f64bb9b86e0b15c770e0d2.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库

3.6.5 从远程仓库中抓取与拉取

  • git fetch 是从远程仓库获取最新版本到本地仓库,不会自动merge。

因为目前我们没有项目修改,我们就用一个工作区来演示。我们把刚从远程仓库中拉下来的代码全部删除掉。

在这里插入图片描述

目前指定的目录就不再是仓库了。就是一个普通的目录了。
![在这里插入图片描述]( https://img-blog.csdnimg.cn/59c2a06b313f43d0bbb3263bfbbc4c13.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

![在这里插入图片描述]( https://img-blog.csdnimg.cn/7d5ff42a37d64b7496d3f1c4d56e56fd.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

只是把远程仓库中的文件放入.git\objects下的目录中了。但里面的文件我们也看不懂,因为里面的文件是二进制文件。 ![在这里插入图片描述]( https://img-blog.csdnimg.cn/e0d113c3e2c54785ba54ba8b384ba9fd.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

这是文件就到本地工作区了。

  • git pull 是从远程仓库获取最新版本并merge到本地仓库

![在这里插入图片描述]( https://img-blog.csdnimg.cn/01d9b22dda2e4d99972a303df75d98e2.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数–allow-unrelated-histories ![在这里插入图片描述]( https://img-blog.csdnimg.cn/6812a887b2a34d608f72cff2409bb84f.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916120729727.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

在这里插入图片描述

git commit -a -m "update" 把本地文件先推到暂存区,再添加到本地仓库

3.6.6 推送到远程仓库

当你想分享你的代码时,可以将其推送到远程仓库。 命令形式:git git push [remote-name][branch-name]

在这里插入图片描述

如果第一次push不提示输入用户名密码。说明控制面板中已经存放了凭据信息。可以把其删除,重新输入用户名密码。

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916120850671.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

3.7 Git分支

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。Git 的master分支并不是一个特殊分支。 它跟其它分支没有区别。 之所以几乎每一个仓库都有 master 分支,是因为git init 命令默认创建它,并且大多数人都懒得去改动它。

3.7.1 查看分支

\# 列出所有本地分支

$ git branch

\# 列出所有远程分支

$ git branch -r

\# 列出所有本地分支和远程分支

$ git branch -a
1234567891011

在这里插入图片描述

3.7.2 创建分支

在这里插入图片描述

3.7.3 切换分支

在这里插入图片描述

3.7.4 推送至远程仓库分支

![在这里插入图片描述]( https://img-blog.csdnimg.cn/e3d3faed523f423da6578d495e4e8ae8.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_18,color_FFFFFF,t_70,g_se,x_16)

3.7.5 合并分支

![在这里插入图片描述]( https://img-blog.csdnimg.cn/a62fecbdc14b4588bdf4424b8889eccb.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

![在这里插入图片描述]( https://img-blog.csdnimg.cn/cf18b6b42dca4ed9801479d446f53483.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16)

有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没办法合并它们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决

3.7.6 删除分支

在这里插入图片描述

如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的-d参数改为-D

在这里插入图片描述

注:如果要删除远程仓库中的分支,可以使用命令git push origin –d branchName

四、在IDEA中使用Git

4.1 在IDEA中配置Git

如果Git在安装过程中使用的是默认的安装路径,idea可以直接自动查,无需配置(最新的idea即使自定义安装位置也可以找到)

  • 打开idea进入全局配置

![在这里插入图片描述]( https://img-blog.csdnimg.cn/2f01ce7dd0294da4b827c1b218878e89.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

  • 输入git,进入git配置文件

    默认会自动进行git位置的查找

![在这里插入图片描述]( https://img-blog.csdnimg.cn/18dd9ad3b92446688986df23b13ac887.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

  • 手动选择git下bin下的git.exe 并点击test进行测试

在这里插入图片描述

4.2 在IDEA中使用Git

4.2.1在IDEA中创建工程并将工程添加至Git

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916121250406.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

4.2.2 将文件添加到暂存区

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916121305881.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

4.2.3 提交文件

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916121314684.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

4.2.4 将代码推送到远程仓库

![在这里插入图片描述]( https://img-blog.csdnimg.cn/2020091612132312.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

4.2.5 从远程仓库克隆工程到本地

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916121334919.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

4.2.6 从远程拉取代码

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916121346805.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

4.2.7 版本对比

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916121356219.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

4.2.8 创建分支

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916121405501.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

4.2.9 切换分支

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916121413195.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

4.2.10 分支合并

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200916121422591.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTg2NDY1,size_16,color_FFFFFF,t_70#pic_center)

4.3 使用IDEA进行git项目协作开发

4.3.1 创建本地仓库上传远程仓库

1、gitee创建远程仓库

![在这里插入图片描述]( https://img-blog.csdnimg.cn/90a3a2855406409fb6f19b5d22bbf012.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_17,color_FFFFFF,t_70,g_se,x_16#pic_center)

![在这里插入图片描述]( https://img-blog.csdnimg.cn/e6bfb18be5fd45b2b59236c0a48d452d.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

注意:不要勾选初始化仓库,除非你不会在本地创建而是直接克隆仓库后继续创建项目

2、在本地创建仓库

直接使用idea创建新的项目,并进行代码书写

![在这里插入图片描述]( https://img-blog.csdnimg.cn/2fba7f45dc0a4b549cd63a0cd05f267a.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
使用git 初始化仓库(选择当前项目所在文件夹 初始化为git的仓库)

![在这里插入图片描述]( https://img-blog.csdnimg.cn/8c1ab09a07854c20bf486764f01cae6a.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
初始化后所有的文件进入没有添加状态

![在这里插入图片描述]( https://img-blog.csdnimg.cn/5d68410c4e9e44089dfcdd003b115181.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

在初始化git仓库后 右键会出现git相应的选项

右键点击要添加的文件或文件夹 选择git->add 将内容添加

![在这里插入图片描述]( https://img-blog.csdnimg.cn/ef83a5bc5c8148cab30b33d608029526.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

点击后所有文件进入暂存区

![在这里插入图片描述]( https://img-blog.csdnimg.cn/536605abca2940318b94e37bd0c64da7.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

继续在项目文件右键git->commit

![在这里插入图片描述]( https://img-blog.csdnimg.cn/d3e48a6c47a641beb0aecd06ed3deed4.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

选择本次提交修改的文件,输入本次提交的信息,在提交至本地仓库后,文件会恢复初始样式
![在这里插入图片描述]( https://img-blog.csdnimg.cn/4e753037de8747c8b6140f801f95ecf2.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

3、将本地仓库提交至远程仓库

如果远程仓库为新建没有代码可以直接提交

![在这里插入图片描述]( https://img-blog.csdnimg.cn/bd22fe3eec0148feb02f6c02cce384f7.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

如果是第一次提交,没有配置远程仓库,需要点击配置远程仓库(如果是克隆的仓库会自动进行配置)

在这里插入图片描述

输入远程仓库地址(名字不要修改)

![在这里插入图片描述]( https://img-blog.csdnimg.cn/5482b98afbdb4360ad372aba7ff6fabc.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

默认删除master也可以修改,点击push上传至远程仓库

![在这里插入图片描述]( https://img-blog.csdnimg.cn/8515b3e21cf64f98bdd5e4b1c54c69fd.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

4.3.2 克隆远程仓库代码创建项目

IDEA允许直接克隆仓库创建项目

![在这里插入图片描述]( https://img-blog.csdnimg.cn/aec7449a68b3457c9ce67bab203716c9.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

输入地址点击clone

![在这里插入图片描述]( https://img-blog.csdnimg.cn/75cb351be97841b79a85b1e1b04054da.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

注意:一般仓库名与项目名匹配,如果不匹配在pom.xml中配置与项目名不同可能出现无法识别的问题

![在这里插入图片描述]( https://img-blog.csdnimg.cn/1418c5120ef944b8a0411242e9448b01.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

4.3.3 多人协作开发

当本地克隆项目并进行代码修改提交后

![在这里插入图片描述]( https://img-blog.csdnimg.cn/6dfe414348734c6ea2bb06ac45aaba24.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

远程仓库他人克隆下载后进行修改并合并了代码导致内部不一致

所以一般在进行代码提交时,如果直接对主分支master进行提交,那么首先需要先pull,在本地解决完冲突之后在进行提交

![在这里插入图片描述]( https://img-blog.csdnimg.cn/1ff2a91c19bf4430b0b3ad5674614bb7.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

在这里插入图片描述

获取远程仓库最新代码(一般进行开发时,在开发前都会更新最新代码,在代码书写完毕后,如果没有其他人在书写期间修改代码直接push),如果有再次执行pull 进行代码合并

![在这里插入图片描述]( https://img-blog.csdnimg.cn/3c8875d4c45a40df801026acb45cf00e.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

合并成功后就可以进行push提交了

在进行push提交后,可以新建分支,也就是说可以不进行合并,直接将修改的分支新建分支进行提交

![在这里插入图片描述]( https://img-blog.csdnimg.cn/1812954ed8ff42f78fa7dc19550003df.png?x-oss-process=image/watermark ,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55KD5bCUIMKw,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)


每日一点点进步
不进则退

posted @ 2022-04-01 22:57  tc310  阅读(298)  评论(0)    收藏  举报