Git入门级教程

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 一.Git概述?1.什么是Git?Git是一个分布式版本控制,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。




一.Git概述?


1.什么是Git?


Git是一个分布式版本控制,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。


2.通过git我们可以:


(1)代码回溯:快速的回到某个代码历史版本

(2)版本切换:同一个项目可以有多个版本,每个版本代码可能不一样。比如mybatisplus有多个版本

(3)多人协作:多个人共同开发同一个项目

(4)远程备份:通过仓库方式管理代码


3.Git工作流程图


ecc827e7322f45bc9ff6b4629159866e.png


(1)本地仓库和远程仓库:

①本地仓库:开发人员自己电脑上的Git仓库

②远程仓库:远程服务器上的Git仓库

(2)commit:提交,将本地文件和版本信息保存到本地仓库

(3)push:推送,将本地仓库文件和版本信息上传到远程仓库

(4)pull:拉取,将远程仓库文件和版本信息下载到本地仓库


4.工作区、暂存区、版本库 概念


(1)版本库:.git 隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

(2)工作区:包含 .git 文件夹的目录就是工作区,也称为工作目录(和.git同级的一层),主要用于存放开发的代码

(3)暂存区:.git 文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。缓存区

是一个临时保存修改文件的地方。


fec684b87f514a40a560b256d78e89ce.png


补充:Git工作区中的文件存在两种状态:

①unstaged:未暂存(修改已有文件,即:之前已经有人提交过了,你现在又修改了该文件)

②untracked:已跟踪(新创建一个文件)

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


5.Git的下载与安装


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

(2)安装完成后在任意目录点击鼠标右键,如果能看到如下菜单则表示安装完成:


e6a4ac63afbb4e518c6b4ef76e44a3e8.png


①Git GUI Here:打开Git图形界面

②Git Bash Here:打开Git命令行


6.Git代码托管服务


Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?

我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。


(1)GitHub(地址:https://github.com/),是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名gitHub

(2)码云(地址:https://gitee.com/),是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快

(3)GitLab(地址:https://about.gitlab.com/),是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务


二.Git常用命令


1.Git全局设置


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


(1)设置用户信息

①git config --global user.name “XXX”

②git config --global user.email “XXX”


(2)查看配置信息:git config --list

注意:上面设置的user.name和user.email并不是我们在注册码云账户时使用的用户名和邮箱,此处可以任意设置。


2.获取Git仓库:


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


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


①在本地初始化一个Git仓库(不常用)

②从远程仓库克隆(常用)


2.1 在本地初始化Git仓库步骤如下:

(1)在任意目录下创建一个空目录作为我们的本地Git仓库

(2)进入这个目录中,右键打开Git bash窗口

(3)执行命令git init

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


b2d9684d1f80481999083ac2d0b1d0ce.png


2.2 获取Git仓库—从远程仓库克隆:

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

(2)命令形式:git clone 远程Git仓库地址


4.本地仓库操作常用命令


(1)git status 命令用于查看文件状态

(2)git add 命令的作用是将文件的修改加入暂存区

①git add 文件名 // 将指定文件加入缓存区

②git add . // 将所有文件加入缓存区

(3)git reset 命令的作用是将缓存区的文件取消暂存或者是切换到指定版本

例如:git reset --hard 日志版本标识符(日志版本标识符通过git log命令可以查看)

(4)git commit -m "随意写一些提交信息" 将暂存区的文件修改提交到版本库(-m表示message信息)

(5)git log [options] (git log命令就能查看日志)

补充options:

①–all:显示所有分支

②–pretty=oneline:将提交的信息显示为一行

③–abbrev-commit:使得输出的commitID更简短

④–graph:以图的形式显示


(6)为常用指令配置别名(可选)

有些常用的指令参数非常多,每次都要输入好多参数,我们可以使用别名。

①打开用户目录,创建 .bashrc 文件

部分windows系统不允许用户创建点号开头的文件,可以打开gitBash,执行 touch ~/.bashrc

(~代表当前用户的根目录)

②在 .bashrc 文件中输入如下内容


#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'


f33c00f156fb4e56b68d8c300e4526ff.png


注意:HEAD就是个标记,指向谁,谁就是当前分支


(6)版本回退

①作用:版本切换

②命令形式:


git reset --hard commitID


③查看已删除的记录


git reflog



(7)添加文件至忽略列表

一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动

生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录

中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。


5.远程仓库操作的常用命令


(1)git remote

①如果想查看已经配置的远程仓库服务器,可以运行 git remote 命令,它会列出每一个远程服务器的简写。

②如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是Git 克隆的仓库服务器的默认名字

(注意:通过git remote -v 还可以查看远程仓库地址)


(2)git remote add shortname url 添加一个新的远程Git仓库,同时指定一个可以引用的简写

(shortname是远程仓库名字简称,我们一般定义为origin)


(3)git clone url

如果你想获得一份已经存在了的Git远程仓库的拷贝,这时就要用到 git clone 命令。Git克隆的是该 Git 仓库

服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。


(4)git push【remote-name】【branch-name】 推送到远程仓库

remote-name就是我们定义的shortname,branch-name是分支名字


(5)从远程仓库抓取和拉取

远程分支和本地的分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。


1)抓取命令:git fetch [remote-name] [branch-name]

①抓取指令就是将仓库里的更新都抓取到本地,不会进行合并(例如push到origin/master下后,拉取时只会拉取origin/master,而不会将远程仓库的origin/master合并到本地的master下)

②如果不指定远端名称和分支名,则抓取所有分支


2)拉取命令:git pull [remote-name] [branch-name]

①拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge(本地的master下可以合并远程的origin/master)

②如果不指定远端名称和分支名,则抓取所有并更新当前分支


5.1配置SSH钥

(1)生成SSH公钥

①打开git窗口输入命令:ssh-keygen -t rsa

②不断回车,如果公钥已经存在,则自动覆盖

(2)Gitee设置账户共公钥

获取公钥:cat ~/.ssh/id_rsa.pub


7bc3f7d39bae4e88a0727f964dfd2872.png


6.分支操作


分支是Git使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发

主线。同一个仓库可以有多个分支,各个分支相互独立,互不干扰。

注意:通过git init 命令,创建本地仓库时默认会创建一个master分支

(1)git branch // 查看所有本地分支

①git branch -r // 列出所有远程分支

②git branch -a // 列出所有本地分支和远程分支

(2)git branch name // 创建本地分支

(3)git checkout name // 切换分支

注意:我们还可以直接切换到一个不存在的分支(创建并切换)

git checkout -b 分支名

(4)推送到远程仓库


git push [-f] [--set-upstream] [远程名称 [本地分支名][:远程分支名]]


1)如果远程分支名和本地分支名称相同,则可以只写本地分支

git push origin master

①-f 表示强制覆盖(如果远程和本地内容不同,本地新修改的内容强制覆盖远程,基本不用)

②--set-upstream 推送到远程的同时并建立起和远程分支的关联关系


git push --set-upstream origin master:master


③如果当前分支已经和远端分支关联,则可以省略分支名和远端名

此时git push就是将master分支推送到已关联的远端分支

2)查看本地分支与远程分支的关联关系

git branch -vv


(5)git merge name // 合并分支(一般我们都是切换到主分支下,合并其他分支内容到主分支下)


(6)删除分支

①git branch -d b1 删除分支时,需要做各种检查

②git branch -D b1 不做任何检查,强制删除


(7)解决冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解

决冲突,解决冲突步骤如下:

① 处理文件中冲突的地方

② 将解决完冲突的文件加入暂存区(add)

③ 提交到仓库(commit)


(8)开发中分支使用原则与流程

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来

进行重大的Bug修改、开发新的功能,以免影响开发主线。在开发中,一般有如下分支使用原则与流程:

①master (生产)分支

线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;

②develop(开发)分支

是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线

要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。

③feature/xxxx分支

从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完

成后合并到develop分支。

④hotfix/xxxx分支,

从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。

⑤还有一些其他分支,例如test分支(用于代码测试)、pre分支(预上线分支)等等。


7.标签操作


Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以方便的切换到标记时的状态。比较

有代表性的是人们会使用这个功能来标记发布结点(v1.0、v1.2等)。下面是mybatis-plus的标签:


930dbd47fd084de8ba19545f293b9bfb.png


(1)git tag 列出已有标签

(2)git tag name 创建标签

(3)git push shortName name 将标签推送至远程仓库

(4)git checkout -b 【branch】【name】 检出标签,检出标签时需要创建一个分支


5c26d2d47a9343f6a9b8b8ce8a1b30f4.png


三.在Idea中使用Git


1.在Idea中配置Git


在idea中使用Git,本质上还是使用本地安装的Git软件,所以需要在Idea中配置Git


78cbbd90833d41b4b63d9ea332154d45.png


2.获取Git仓库


2675e00be37245eeb3dc8772343f1be2.png


(2)从远程仓库克隆


992ca4c9b22e474588b40ce59e1f652c.png


注意:.gitignore文件定义了项目中哪些文件不需要Git管理


3.本地仓库操作


(1)将文件加入暂存区(右键点击需要加入的文件)


fb23f055a9154c19bf828a5e4fbf34d6.png


(2)将暂存区的文件提交到版本库

①方式一:


bf161f9227e74ace9c70115d5aa90db7.png


②方式二:


5121e2a78e5a4f0e964833a70c481c03.png


(3)查看日志


b39ed411226647918b0b5c76df7d90f7.png


4.远程仓库操作


(1)右键点击可以查看并管理远程仓库


babef930c72e41b0b0a1736c55c44dee.png


(2)推送至远程仓库


a38c8d348a8a4f39ab0c62ac29c2aadc.png


(3)从远程仓库拉取


11325d55301246daa673f0131fa32d5a.png


5.分支操作在右下角



7372b751e60f44c7990563177188434a.png


6.IDEA集成GitBash作为Terminal


26d6243a2d8341f8a003321e392b0793.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
开发工具 git
Git教程:深入了解删除分支的命令
【4月更文挑战第3天】
1131 0
Git教程:深入了解删除分支的命令
|
6月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux git命令使用教程
【Shell 命令集合 文件管理】Linux git命令使用教程
106 0
|
6月前
|
安全 开发工具 git
git使用教程
git使用教程
96 0
|
13天前
|
存储 开发工具 git
git工具使用教程全讲解
本文介绍了版本控制的概念及其重要性,详细对比了多种版本控制工具,如VSS、CVS、SVN和Git,重点讲解了Git的基本使用方法、工作原理及与SVN的区别。此外,文章还介绍了GitHub、GitLab和Gitee等流行的代码托管平台,以及如何在这些平台上注册账号、创建和管理仓库。最后,文章还提供了如何在IntelliJ IDEA中配置和使用Git的具体步骤。
35 1
|
1月前
|
编译器 开发工具 数据安全/隐私保护
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
本文提供了一个关于如何在Gitee上进行多人协作和版本控制的详细教程,包括新建和初始化仓库、克隆仓库、邀请好友共同管理仓库以及注意事项,旨在帮助用户顺利进行代码协作开发。
193 0
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
|
3月前
|
Linux 开发工具 git
|
4月前
|
数据可视化 程序员 开发工具
小白也能玩转Git:从入门到实战详细教程
小白也能玩转Git:从入门到实战详细教程
|
4月前
|
Ubuntu 开发工具 git
git 超实用教程【人人必会!】(含大厂的 git 操作规范)
git 超实用教程【人人必会!】(含大厂的 git 操作规范)
64 0
|
6月前
|
存储 开发工具 git
|
6月前
|
Ubuntu Linux 开发工具