2021最新最全!IntelliJ Idea如何使用使用Git!Git到底是什么!(值得一看)

article/2025/10/22 6:55:55

IntelliJ Idea如何使用使用Git!Git到底是什么!

  • 前言
  • 一、Git是什么
  • 二、Git 工作区、暂存区和版本库、远程仓库
  • 三、Git与SVN的区别
    • 3.1 存储方式
    • 3.2 使用方式
    • 3.3 管理模式
  • 四、Git使用
    • 4.1 Git开始、Git 速成
    • 4.2 环境配置
    • 4.3 创建仓库
    • 4.4 pull与push
    • 4.5 git分支管理
    • 4.5 本地仓库操作
  • 五、常用命令速查

前言

在开发的时候,需要合并Git的分支,然后菜菜就兴致勃勃去了,结果!!!菜菜竟然不会了,然后概念也有些模糊了,在查阅了资料过后发现资料有些老旧以及不够集中,耽搁了菜菜摸鱼的时间,太过分了!太过分了!太过分了!
在这里插入图片描述
借此机会,把Git来好好学下,温故而知新,摸鱼一整天!冲冲冲!

一、Git是什么

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
在开发中,Git已成为现在主流的一种代码托管技术(版本管理工具),基本上大多数的公司都在使用Git进行协同开发。很多代码托管平台也是基于Git来实现的。

Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。大家在工作学习中,应该接触过Git、GitLab、Github三个概念名称,来看下他们之间的联系与区别:

名称含义
Git版本控制系统(SVN),是一种工具/命令
GitLIb实现git功能的开发库
GitHub开放的在线代码仓库
GitLab一般是内部的在线代码仓库 ,搭建私服,类似于github 。利用Ruby on Rail开发的开源应用程序,实现一个自托管的Git项目仓库,可以通过web界面进行访问公开的或者私人项目

我们使用Git可以为我们做到以下事情,来节省我们摸鱼时间:

  1. 版本控制,分支管理
  2. 本地仓库与原创仓库提交,拉取,合并,推送
  3. 协同开发,整个团队中所有人都可以访问

二、Git 工作区、暂存区和版本库、远程仓库

工作区Workspace

就是你在电脑里能看到的目录,平时存放项目代码的地方

暂存区Index / Stage

暂存区有时也叫作索引(index),一般存放在 .git 目录下的 index 文件(.git/index)中,事实上它只是一个文件,保存即将提交到文件列表信息

版本库/仓库区 Repository

工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

远程仓库Remote

远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

找到一个图,很形象,可以有助于理解,来源
https://www.runoob.com/git/git-workspace-index-repo.html

三、Git与SVN的区别

由于SVN也比较流行,也时不时的在使用,菜菜在这里就做个两者的区别分析

3.1 存储方式

  1. Git按照元数据的方式将文件的一个版本存入了一个类似与K/V数据库,类似Map<K,V>,将内容存储在Git数据库后,会返回我们一个类似Key的钥匙给我们
  2. SVN是按照文件的方式进行一个存储。

3.2 使用方式

本地把文件推送到远程服务
SVN

commit

Git

add、commit、push

3.3 管理模式

  1. Git是一个分布式的管理系统,本地含有完整的Git仓库,远程仓库有的功能本地Git仓库基本都有
  2. SVN是远程集中式的管理系统,远程仓库挂了就它就挂了

在这里插入图片描述
接下来就不说废话了,直接上我们日常常用功能

四、Git使用

这里示例是使用IntelliJ Idea哈,不深入讲Git Bush哈~

4.1 Git开始、Git 速成

第一步,我们先新建一个文件夹,在文件夹里新建一个文件
第二步,进入文件夹,执行git init,创建新的 git 仓库

git init

第三步,创建一个本地仓库

git clone /path/to/repository   //创建一个本地仓库的克隆版本
git clone username@host:/path/to/repository //远端服务器上的仓库

工作流:
你的本地仓库由 git 维护的三棵“树”组成。
第一个是你的 工作目录,它持有实际文件;
第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;
第三个是 HEAD,它指向你最后一次提交的结果

第四步,添加和提交

git add <filename>
git add *

第五步,提交到了 HEAD

git commit -m "代码提交信息"

第六步, 从HEAD 中提交到远端仓库

git push origin master  //可以把 master 换成你想要推送的任何分支
git remote add origin <server>   //将你的仓库连接到某个远程服务器

在这里插入图片描述
第七步,分支学习

git checkout -b  b1   //创建一个叫做“b1”的分支,并切换过去
git checkout master   //切换回主分支
git branch -d b1    //删除建的b1分支
git push origin <branch> //将分支推送到远端仓库

第八步,更新与合并

git pull  //更新你的本地仓库至最新改动
git merge <branch>  //合并其他分支到你的当前分支,可能出现冲突(需要手动合并这些冲突)
git add <filename>  //改完之后,将它们标记为合并成功
git diff <source_branch> <target_branch> //合并改动之前,预览差异

4.2 环境配置

设置用户信息

git config --global user.name "xxxxx"
git config --global user.email   xxxxxxx@qq.com

查看配置信息

git config --list
git config user.name

4.3 创建仓库

git init newDir     //在本地初始化一个git仓库
git clone <url> [directory]      //clone一个git仓库

4.4 pull与push

git push 使用本地的对应分支来更新对应的远程分支

git push <远程主机名> <本地分支名>:<远程分支名> 
git push origin master

项目-》右键-》Git-》Repository-》Push

git pull 获取并合并其他的厂库,或者本地的其他分支

git pull <远程主机> <远程分支>:<本地分支>
git pull origin master:dev

项目-》右键-》Git-》Repository-》Pull
在这里插入图片描述

4.5 git分支管理

查看分支,前面带*号的就是当前分支

git branch * devmaster

项目-》右键-》Git-》Repository-》branches
在这里插入图片描述
在这里插入图片描述
创建分支

git branch 分支名

项目-》右键-》Git-》Repository-》branches-》New Branch
在这里插入图片描述
在这里插入图片描述
切换当前分支到指定分支

git checkout 分支名

项目-》右键-》Git-》Repository-》branches-》New Branch-》左键选中-》checkout
在这里插入图片描述

创建分支并切换到创建的分支

git checkout  -b 分支名

合并某分支的内容到当前分支

git merge 分支名

删除分支

git branch -d 分支名

在这里插入图片描述
小结;

git branch    //查看分支命令
git branch (branchname)    //创建分支命令
git checkout (branchname)    //切换分支命令
git merge    //合并分支命令
git branch -d (branchname)    //删除分支命令

4.5 本地仓库操作

查看文件状态

git status    //查看文件状态
git status -s  //更加具体的简介

将未跟踪的文件加入暂存区

git add dirUrl
git add .   //把工作时的所有变化提交到暂存区
git add -u   //git add --update的缩写,会将被修改的文件提交到暂存区。add -u 不会提交新文件

commit 命令将暂存区内容添加到本地仓库中

git commit -m [message]
git commit [file1] [file2] ... -m [message] //提交暂存区的指定文件到仓库区
git commit -a     //参数设置修改文件后不需要执行 git add 命令,直接来提交

在这里插入图片描述

五、常用命令速查

命令解释
git clone url克隆远程仓库
git init初始化本地 git 仓库(新建仓库)
git status查看当前版本状态(是否修改)
git diff显示所有未添加至 index 的变更
git diff HEAD查看已缓存的与未缓存的所有改动
git add 将该文件添加到缓存
git commit -m ‘xxx’提交
git commit --amend -m ‘xxx’合并上一次提交(用于反复修改)
git commit -am ‘xxx’将 add 和 commit 合为一步
git remote -v列出远程分支详细信息
git remote show 显示某个分支信息
git remote add 添加一个新的远程仓库
git fetch 获取远程分支,但不更新本地分支,另需 merge
git pull 获取远程分支,并更新本地分支
git push 推送本地更新到远程分支
git push --delete 删除一个远程分支
git push --tags推送本地标签
git merge 合并分支到当前分支,存在两个
git rebase 合并分支到当前分支,存在一个
git rebase --abort回到执行 rebase 之前
git rebase --continue解决矛盾后继续执行 rebase
git mergetool使用 mergetool 解决冲突
git add 使用冲突文件解决冲突
git reset --hard HEAD将当前版本重置为 HEAD(用于 merge 失败)
git reset --hard 将当前版本重置至某一个提交状态(慎用!)
git reset 将当前版本重置至某一个提交状态,代码不变
git reset --merge 重置至某一状态,保留版本库中不同的文件
git reset --keep 重置至某一状态,重置变化的文件,代码改变
git checkout HEAD 丢弃本地更改信息并将其存入特定文件
git revert 撤消提交
git log查看提交历史
git log -p #查看指定文件的提交历史
git blame 以列表方式查看指定文件的提交历史

http://chatgpt.dhexx.cn/article/4Km39FLs.shtml

相关文章

IntelliJ IDEA中使用git

在idea使用git完成版本控制 git操作本地仓库&#xff08;自己进行版本控制&#xff09; git操作远程仓库&#xff08;多人进行版本控制&#xff09; 配置Git创建工程集成Git推送代码到远程仓库从远程仓库克隆从远程仓库拉取 1,在Idea中配置git 安装好IntelliJ IDEA后&#xf…

IDEA 使用Git图文详解

一、配置git路劲&#xff1a; 或 二、克隆项目 或 填写克隆路径及输出路径 三、上传项目到git仓库 1、在你的idea里新建git仓库&#xff0c;这是新建本地仓库&#xff0c;等会会同步到线上git仓库 2、新建后如果文件名不是绿色的表示没有加入到git索引中 3、将需要上传的文件…

(详解)IDEA中使用git教程

前言 最近学习了一下VCS(Version Control System)&#xff0c;这里我选择的是Git而不是SVN&#xff0c;因为Git在本地磁盘上就保留着所有当前项目的历史更新&#xff0c;所以处理起来速度飞快&#xff0c;这是使用空间换时间的处理方式。使用Git&#xff0c;即使在没有网络或V…

IDEA 使用 Git 操作详解

目录 IDEA 配置 Git Git clone 克隆项目 Git init 初始化本地项目并推送 Git add 添加文件到暂存区 Git commit 提交文件 Git push 推送文件到服务器 Git pull 拉取服务器文件 Git fetch 抓取服务器文件 Git merge 解决文件冲突 文件版本内容对比 Comare with 对比本…

IDEA中git的使用

1、克隆远程仓库代码 1.1在idea顶部导航栏选择CSV→Get from Version Control 1.2打开之后Version control选择Git&#xff0c;填写URL&#xff0c;Directory&#xff0c;填好之后点击clone 1.3拉取成功之后&#xff0c;IDEA会出现commit&#xff0c;push等按钮 2、切换分支 …

IDEA中如何使用Git——图文超详细,包会

1、IDEA中配置Git 选择File→Settings打开设置窗口&#xff0c;找到Version Control下的Git选项,然后配置Git路径。如果Git安装在默认路径下&#xff0c;IDEA可以自动找到。选择路径后点击右侧Test&#xff0c;出现版本号提示即可【由于IDEA版本问题&#xff0c;提示的方式可能…

模块化开发-概念篇

介绍 模块化可以说是当下最重要的前端开发范式之一&#xff0c;它随着前端应用的日益复杂&#xff0c;项目代码已经逐渐膨胀到了不得不花大量时间去管理的程度了。而模块化呢就是一种最主流的代码组织方式它通过把我们的复杂代码按照功能的不同划分为不同的模块&#xff0c;单…

Android模块化开发架构

模块化开发架构 为什么使用模块化架构开发方式 在项目组开发过程中&#xff0c;一个项目业务有很多&#xff0c;每个成员都负责一部分业务开发&#xff0c;这个时候业务代码全部都糅杂在一起&#xff0c;不管是后面维护和代码阅读&#xff0c;都是很困难的&#xff0c;这个时候…

Vue的模块化开发

一、为什么需要模块化 客户端需要完成的事情越来越多&#xff0c;代码量也是与日俱增。 为了应对代码量的剧增&#xff0c;我们通常会将代码组织在多个js文件中&#xff0c;进行维护。 但是这种维护方式&#xff0c;依然不能避免一些灾难性的问题。 比如小明和小丽在不同的JS文…

小程序模块化开发

文章目录 1. 模块模块的定义和使用&#xff1a;注意 2. 模板模板的定义和使用&#xff1a;定义 使用注意 1. 模块 模块的定义和使用&#xff1a; module.exports {welcome: welcome }var welcome require(../utils/welcome.js) Page({data: {},onLoad: function() {…} })…

Android 模块化开发

概述 单独开发每个模块&#xff0c;用集成的方式把他们组合起来&#xff0c;拼出一个app。如通用的模块&#xff0c;自动更新的模块&#xff0c;反馈模块&#xff0c;推送模块都可以单独以模块来开发&#xff0c;最后进行集成。我们可以通过一个壳来包含很多个模块。 好处 可…

什么是前端模块化?前端模块化开发到底有无必要

转自:http://www.jianshu.com/p/e422c28e2471 序&#xff1a; 所谓前端开发&#xff0c;就是前台&#xff0c;常见的包括几个端&#xff1a;PC、pad、手机、其他智能设备&#xff0c;可以跑浏览器的地方就是我们前端人大施拳脚的乐土。自从node的问世&#xff0c;现在不光可以在…

什么是模块化开发?

什么是模块化开发&#xff1f; 前端开发中&#xff0c;起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果&#xff0c;后来js得到重视&#xff0c;应用也广泛起来了&#xff0c;jQuery&#xff0c;Ajax&#xff0c;Node.js&#xff0c;MVC&#xff0c;MVVM等…

深入理解JavaScript模块化开发

前言&#xff1a; 随着JavaScript应用程序的复杂性不断增加&#xff0c;模块化开发成为了一种必备的技术。通过将代码划分为模块&#xff0c;我们可以提高代码的可维护性、可重用性和可扩展性。在本文中&#xff0c;我们将深入探讨JavaScript模块化开发的概念、优势和不同的模块…

细说前端模块化开发

一、模块化概述 模块化开发是当下最重要的前端开发范式之一。随着前端应用的日益复杂&#xff0c;我们的项目代码已经逐渐膨胀到了不得不花大量时间去管理的程度了。模块化就是一种最主流的代码组织方式&#xff0c;它通过把我们的复杂代码按照功能的不同&#xff0c;划分为不…

模块化开发简述

模块化开发简述 都说模块化开发为前端发展带来了巨大的进步&#xff0c;然而不熟悉的人看着也是两眼一懵&#xff0c;那其实这到底是什么&#xff1f;好处在哪&#xff1f;我来说说自己的见解吧。 1. 模块化和传统开发的区别 实话讲&#xff0c;其实在我看来&#xff0c;两…

什么是模块化?模块化怎么实现?

什么是模块化&#xff1f;模块化怎么实现&#xff1f; 前言 &#xff1a; 增加印象&#xff0c;留下脚印 &#xff0c;忘记还可以翻一翻 奥利给。 1&#xff0c;什么是模块化 公司里一个项目是有很多程序员一起开发的&#xff0c;例如 “多人运动” 这个项目 有程序员a &…

vue 模块化开发

1、npm install webpack -g 全局安装 webpack 2、npm install -g vue/cli-init 全局安装 vue 脚手架 3、初始化 vue 项目&#xff1b; vue init webpack appname&#xff1a;vue 脚手架使用 webpack 模板初始化一个 appname 项目 4、启动 vue 项目&#xff1b; 项目的 p…

Android模块化开发

模块化开发项目搭建 1.为什么要模块化开发 随着APP版本不断的迭代&#xff0c;新功能的不断增加&#xff0c;业务也会变的越来越复杂&#xff0c;APP业务模块的数量有可能还会继续增加&#xff0c;而且每个模块的代码也变的越来越多&#xff0c;这样发展下去单一工程下的APP架…

vue模块化开发

1.前端代码化雏形和CommonJS JavaScript原始功能 在网页开发的早期&#xff0c;js制作作为一种脚本语言&#xff0c;做一些简单的表单验证或者动画实现&#xff0c;代码量比较少&#xff0c;只要写在script标签里面就可以了 随着ajax异步请求的出现&#xff0c;慢慢形成了前…