• 二、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

git add *

第五步,提交到了 HEAD

git commit -m “代码提交信息”

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

git push origin master //可以把 master 换成你想要推送的任何分支

git remote add origin //将你的仓库连接到某个远程服务器

在这里插入图片描述

第七步,分支学习

git checkout -b b1 //创建一个叫做“b1”的分支,并切换过去

git checkout master //切换回主分支

git branch -d b1 //删除建的b1分支

git push origin //将分支推送到远端仓库

第八步,更新与合并

git pull //更新你的本地仓库至最新改动

git merge //合并其他分支到你的当前分支,可能出现冲突(需要手动合并这些冲突)

git add //改完之后,将它们标记为合并成功

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 [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

  • dev

master

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

在这里插入图片描述

在这里插入图片描述

创建分支

git branch 分支名

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
成长,自己不成体系的自学效果低效漫长且无助。**

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-Wmiv1Aey-1715267547891)]

[外链图片转存中…(img-vWr7WuxT-1715267547891)]

[外链图片转存中…(img-Z0WarSXg-1715267547892)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐