Git命令&Gitee注册&idea操作git超详细

发布于:2024-05-08 ⋅ 阅读:(25) ⋅ 点赞:(0)


概述

Git是目前世界上最先进的分布式文件版本控制系统
版本控制:所谓的版本控制就是将一组文件的改动记录下来,形成版本历史,以便需要恢复
作用
1、代码共享:每位开发者可以使用Git将自己的代码上传到云服务器上,同时使用Git还可以将其他人上传的代码下载到自己的电脑上,这样实现了代码共享
2、回溯版本:Git会保存每次上传的痕迹,每上传一次就做一次备份,每次备份就相当于一个版本,任意时间可以通过Git查询曾经提交过的每一个版本对应的内容。
3、追踪信息:Git提供了强制记录日志的功能,每次上传信息都要求写日志,可以记录本次上传的相关信息

相关概念

Snipaste_2024-05-07_09-02-13.png

  • 工作区:就是平时存放代码的地方
    • 一个文件夹通过git init设置成一个git可以管理的文件夹,这个文件夹中的内容(除.git文件夹)就是工作区
  • 版本库:就是安全存放数据的位置,这里面有提交到所有版本的数据
    • 其中HEAD指向最新放入仓库的版本
    • 工作区的隐藏目录.git,它不算工作区,而是版本库
  • 暂存区:index,用来暂时存放工作区中修改的内容。在加入到本地仓库前,会先放置在暂存区
    • 一般存放在.git/index文件中
  • HEAD:指向最新放入仓库的版本
  • master:是我们的主分支,是本地仓库的一部分
    • 当我们git init后,并不会立刻产生分支,而是我们添加了一个文件,并git add,git commit后这时我们查看分支情况便可以看到master分支了
  • objects:是git对象库,是用来存储各种创建的对象和内容
  • 远程仓库:托管代码的服务器,常用github,gitee,gitlab

下载和安装

下载地址:https://git-scm.com/download
安装过程非常简单,直接next
Snipaste_2024-05-07_09-20-41.png
点击Finish完成安装,验证安装,找一个桌面空白处,右键出现下列窗口
Snipaste_2024-05-07_09-21-44.png

常见命令

创建一个文件夹,右键然后点击Git Bash here

  1. 初始化工作区:git init
  2. 查看当前工作区的代码文件状态:git status
    1. 红色代表未放到暂存区
    2. 绿色代表放到暂存区
  3. 将工作区的代码文件提交到暂存区:git add 文件名
  4. 将暂存区的代码文件提交到本地仓库:git commit -m ‘提交信息’
  5. 差异化比较
    1. 工作区和暂存区:git diff 文件名
    2. 暂存区和本地仓库:git diff --cached 文件名
    3. 工作区和本地仓库:git diff HEAD 文件名
  6. 查看提交日志:git log/git reflog
    1. git reflog:特点是查看的提交版本号比较短
  7. 版本回退:回退哪个版本
    1. 回退到上一个版本(提交位置):git reset --hard HEAD^
    2. 回退到指定版本:git reset --hard 版本号
  8. 撤销工作区:git checkout 文件名
  9. 将代码从暂存区撤销到工作区:git reset HEAD 文件名
  10. 分支:
  11. 创建分支:git branch 分支名
  12. 查看分支:git branch
  13. 切换分支:git checkout 分支名
  14. 合并分支:git merge 分支名
  15. 删除分支:git branch -d 分支名

:合并分支

  1. 如果将其他分支合并到master主分支上,那么需要切换到master上
  2. 如果将dev分支合并到主分支master上,那么必须在dev分支上进行commit提交到本地仓库

远程仓库介绍与码云注册创建

介绍

远程仓库是公网或外网中的一个仓库,主要用于存储个人或团队的提交记录与提交日志,团队开发也是靠远程仓库实现的。大家把东西提交到同一个远程仓库里面就ok了,这样每个人都可以获取到团队内开发的所有内容了。
常用的远程仓库

码云注册

访问地址:https://gitee.com

  1. 没有账号的按要求注意并登录
  2. 创建仓库

Snipaste_2024-05-07_13-47-52.png

  1. 填写对应信息

image.png

  1. 复制远程仓库的地址

image.png

远程仓库操作

关联

在推送到码云仓库前,需要先建立本地仓库与远程仓库的关系
命令:git remote add origin 远程仓库地址

拉取

从码云仓库拉取到本地仓库,在推送代码前必须先拉取代码,否则无法推送本地仓库代码到码云仓库
命令:git pull origin master --allow-unrelated-historities
首次拉取需要添加:–allow-unrelated-histories
后续拉取:git pull

推送

本地仓库到码云仓库
首次推送:git push -u origin master
后续推送:git push

克隆

如果我们新加入一个团队,这个时候就需要我们把代码从远程仓库克隆过来,先新建一个文件夹,在新的文件夹中鼠标右键点击Git bash Here,输入下面命令
命令:git clone 远程仓库地址
克隆和拉取的区别

  • 相同点:都是从远程服务器拉取代码到本地
  • 不同点:
    • 克隆:是本地没有版本库时,从远程服务器克隆到整个版本库到本地,是一个本地从无到有的过程
    • 拉取:在本地有版本库的情况下,从远程库获取最新commit数据,并merge到本地

在idea中使用git

集成

  1. 点击idea中File->settings
  2. 弹出settings后在搜索中输入"git",选择Git,指定你的安装的git.exe目录

Snipaste_2024-05-07_14-28-09.png

  1. 校验git是否集成完成,点击test,弹出校验窗口,点击git Executed successed 成功则表示集成完成

image.png

  1. 创建工程

image.png

  1. 初始化工作区:点击VCS->Create Git Reposity

image.png

  1. 选择管理的文件夹,这里我现在的为gitProject文件夹

image.png

  1. 点击左下角,Git菜单,此时day0901_git下所有的文件都变成棕色,说明我们的工作区添加完成了

image.png

  1. 忽略文件类型

image.png
办法:将.gitignore文件复制到项目的根目录

add和commit

  1. 工作区提交暂存区 add

image.png
颜色变为绿色

  1. 暂存区提交到本地仓库 commit

image.png
image.png
image.png
image.png
image.png

差异化比较&查看提交记录

工作区和本地仓库比较
image.png
image.png
image.png
查看记录
image.png

版本回退及撤销

先修改java文件,提交俩次,总共有三次提交记录
本地仓库回退撤销

  1. 点击git->log查看3个提交的版本

image.png

  1. 现在在本地仓库中回退到第二次提交,选择第二次提交的标记

image.png

  1. 选择Hrad

image.png

  1. 回退成功

image.png
工作区撤销

  1. 当我们在工作区编辑代码时候,希望撤销未提交本地仓库的代码时候,在Git中右键

image.png

  1. 点击rollback

image.png

  1. 撤销成功

image.png
说明:针对上述工作区的代码撤消,有同学会有疑问,我直接删除不就完了吗,为什么这么麻烦,其实我们在实际开发中代码会很多,那么当你书写了很多不同地方的代码,以至于你都忘记哪些是新编写的代码了,那么删除是一件很痛苦的事情,并且容易误删,所以使用工作区撤销更加方便。

与远程仓库关联 push

上面已经创建了远程仓库,接下来用idea与远程仓库关联

  1. 点击推送

image.png

  1. 点击Define remoteimage.png
  2. 输入上面复制的远程仓库地址

image.png

  1. 选择提交

image.png
关联远程仓库

  1. Git—>Manage Remotes …

image.png

  1. 点击弹出窗口中的+

image.png

  1. 将复制的远程仓库地址复制到url中
  2. 成功关联

image.png

从远程仓库上拉取,克隆项目到本地

拉取

  1. 先在gitee上复制要导入项目的连接地址
  2. 点击项目->Git->pull

image.png

  1. 如果没有master按ctrl+F5

image.png
第一次拉取失败

  1. 点击右下角master

image.png

  1. 右击选择下面图中

image.png

  1. 点击merge

image.png

  1. 点击红色箭头,最后点击apply

克隆

  1. 点击git->clone

image.png

  1. 填写地址和存放项目位置

image.png

  1. Trust Project或者New Window
  2. 导入之后查看当前项目在idea中的三个环境

maven地址 File->settings
image.png
idea环境必须都是utf-8编码
image.png
当前使用的jdk8
image.png

创建分支

image.png
创建到本地分支上

切换分支

  1. 将gitee中所有的分支拉取到idea中

image.png

  1. 在idea中查看本地和远程分支

image.png

  1. 切换到dev1分支上

  1. 我们不能在master分支上进行书写代码,都是在每个分支上写代码,然后最后确定没问题之后再将其他分支上的代码合并到master代码上
  2. 在切换其他分支之前必须先将当前分支的代码进行提交,否则当前分支的代码就不存在了

提交当前分支的代码
看上面commit
切换分支
image.png

将除了master分支推送到gitee上

和上面一样,有个简化的是中间commit和push
image.png
image.png
注意:推送的一定是dev1分支上的代码,如果推送的是master分支上的代码就会报错。

将其他分支代码合并到master分支上并上传提交

要想将dev1分支代码合并到master分支上,首先需要切换到master分支上,然后在合并

  1. 将dev1分支上的代码提交
  2. 切换到本地master分支

image.png

  1. 将dev1分支代码合并到master分支上

image.png

  1. 将master分支上的代码提交并推送到gitee上

image.png

处理版本冲突

当多个用户对同一个文件交叉修改的时候就尴尬了。A修改完提交一个,B修改完又提交一个,这个时候A修改完提交,问题来了,如果A提交成功,那么就相当于忽略了B提交的内容。这个时候就要强制你去处理一下这个问题,这就是我们所说的冲突问题。

  1. 先拉取代码,这时候App的类变成红色,且弹出窗口,需要手动进行合并

image.png

  1. 解决冲突

image.png

  1. 选择主干

image.png

  1. 推送到远程仓库

网站公告

今日签到

点亮在社区的每一天
去签到