Git使用(命令+idea快捷)

news2024/11/15 17:42:02

目录

一、概述

1.什么是Git

2.Git能干什么

3.简介

4.下载和安装

二、Git代码托管服务

1.常用的Git代码托管服务

2.使用码云代码托管服务

 三、Git全局设置(常用命令)

1.命令

2.实现 

 四、获取Git仓库(常用命令)

1.两种方式

2.本地初始化Git仓库

(1)步骤

(2)实现

 3.远程仓库克隆

(1)步骤

(2)实现 

 五、几个重要概念(常用命令)

1.工作区、暂存区、版本库

 2.Git工作区中文件的状态

 六、本地仓库操作命令

七、远程仓库操作命令

 八、分支操作

1.查看分支

2.创建分支

3.切换分支

4. 推送至远程仓库分支

5.分支合并

九、标签操作

十、idea2023中使用git(更方便更简单)

1.配置git

 2.获取Git仓库

(1)本地初始化仓库

(2)克隆远程仓库

(3).gitignore文件 

(4)将文件加入暂存区

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

(6)查看日志

(7)查看远程仓库

(8)添加远程仓库

 (9)推送远程仓库

(10)从远程仓库拉取

(11)查看分支

(12)创建分支

(13)切换分支

(14)将分支推送到远程仓库

 (15)合并分支


一、概述

1.什么是Git

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

2.Git能干什么

代码回溯

开发者可以快速回到某个历史版本,方便修复最近的代码错误。

版本切换

允许开发者在不同的版本之间快速切换,例如在开发功能分支和主分支之间切换。这对于并行开发和试验新功能非常有用。

多人协作

Git使得多个开发者可以同时在同一个项目上工作,通过提交和拉取请求(Pull Request)进行代码审查和合并。

远程备份

Git 允许将本地代码库推送到远程服务器,提供一个安全的备份解决方案。这减少了数据丢失的风险,允许团队成员随时访问项目的最新版本。

3.简介

d68414a72e764d7b88f92eb8e20de65f.png

4.下载和安装

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

feeeae519abb48fda62810a18c27c6e3.png

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

7642f18d9c254185b9e991bcaa4a82bf.png

Git GUI Here:打开Git图形界面
Git Bash Here:打开Git命令行(常用)

二、Git代码托管服务

1.常用的Git代码托管服务

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

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


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


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


BitBucket(地址:https://bitbucket.org/),是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户

2.使用码云代码托管服务

操作流程

1、注册码云账号
2、登录码云
3、创建远程仓库
4、邀请其他用户成为仓库成员

创建远程仓库

026057c230154b339fd824b1f071190b.png

c43becb979774076ad94dd71ced49271.png

126272af3f5e41b68274878448d97cf2.png

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

b8a9433a70de419fb5fc4aefe4f64e7b.png

da17cc7b890a4ce6918be11119061dd0.png

 三、Git全局设置(常用命令)

1.命令

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

在Git 命令行中执行下面命令:
设置用户信息
git config --global user.name “itcast"
git config --global user.email "hello@itcast.cn"
查看配置信息
git config --list

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

2.实现 

 eafdc7a9c69c4c71a69a0388630de977.png

0c1eef05da1e4077bb8d8bcbcd08c168.png

 四、获取Git仓库(常用命令)

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

1.两种方式

获取Git仓库通常有两种方式:
1.在本地初始化一个Git仓库(不常用)
2.从远程仓库克隆(常用)

2.本地初始化Git仓库

(1)步骤

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

 (2)实现

c6b91ce501be41b0a5715eec1e8fb02a.png

59e5fe094d09479fbd2267c15151bad0.png

会产生一个.git文件,repo1就是一个本地Git仓库

 3.远程仓库克隆

(1)步骤

1.在任意目录下,作为我们的远程仓库所在目录(不要在其他仓库的目录里面)
2.进入这个目录中,点击右键打开Gitbash窗口
3.执行命令git clone [程Git仓库地址]

(2)实现 

26eef24900e7439fa0024cd502560a8b.png

9c9efa5f139346969c4e1ba4d3a3058a.png

产生一个myGitRepo的远程仓库,和本地仓库平级,没有嵌套

 五、几个重要概念(常用命令)

工作区、暂存区、版本库概念还有Git工作区中文件的状态

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

1.工作区、暂存区、版本库

版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等(一般不能动)
工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

 2.Git工作区中文件的状态

Git工作区中的文件存在两种状态:
(1)untracked未跟踪(未被纳入版本控制)(git status显示红色)
(2)tracked已跟踪(被纳入版本控制)
        1)Unmodified未修改状态(不显示)
        2)Modified已修改状态(红色,要先git add 进入暂存区再提交)
        3)Staged已暂存状态(绿色)

896f5e07b0384bd2a994641f21f95c68.png 在工作区新建的文件是untracked未跟踪状态,使用git add进入暂存区就是暂存状态

git add *或者git add 【具体的文件】 

git status输出当前工作区所有文件的状态 

2e48bca1fcce4177974563f3e2188ae3.png 红色代表untracked未跟踪,绿色代表tracked已跟踪

 六、本地仓库操作命令

 本地仓库常用命令如下:

git status           查看文件状态
git add              将文件的修改加入暂存区
git reset            将暂存区的文件取消暂存或者是切换到指定版本
git commit        将暂存区的文件修改提交到版本库
git log               查看日志

43083054a90e48a6801061ca53a97d38.png

1dc9500bab6f402b9d40e42f8337703e.png

语法:git add 文件名/*     (*代表工作区所有文件)

db2e4033ad034e44b8fe1a495c7ef3c6.png

352b42ec85864907a7ffaf4827828a81.png

语法:git commit 【"注释"】文件名/*       (*代表暂存区所有文件)

“ ”双引号里面是注释,说明作用

8db7d3fbec9141c8ad87a7ef7370f7f0.png

提交后,git status就看不到这个文件了,顺便产生一个版本

e245d635099a474c9e2a84db4983f4a4.png

可以来这里查看版本号,来执行git reset --hard 版本号

就可以回到上个版本的工作区的所有文件和内容

七、远程仓库操作命令

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

git remote              查看远程仓库
git remote add       添加远程仓库
git clone                从远程仓库克隆
git pull                   从远程仓库拉取
git push                 推送到远程仓库

用法 

git remote

查看远程仓库

e5b8c79db0044a9cbd8a78a6b7d68cc1.png git remote add

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

关联上创建好的远程仓库,并指定简写

af0858e5e6984d62aa3df9cccdb50a3b.png

git clone

如果你想获得一份已经存在了的 Git 远程仓库的拷贝,这时就要用到git clone 命令。Git克隆的是该Git仓库服务器上
的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。
克隆仓库的命令格式是:git clone [url]

74e6ad5a6df14fed8a35264ccb17639d.png

24f625604f4a4774b47cd7dbec8a9f31.png

2634605d4f2d40feaadc21403f29a2bd.png

bbc44925102543f1afc954e1c44558fa.png

git push

将本地仓库内容推送到远程仓库,可以使用命令:git push [remote-name] [branch-name]

remote-name  本地存在的仓库的简称

branch       要上传到对应的远程仓库的分支名称

8dd7608b74234f46b7d46e005e992a8e.png

第一次就要身份认证

该身份必须是上传的远程仓库的成员(管理员或开发者等等)

ffec12175c544fb6bc04328d01fb2c20.png

40840a12d20a4afda14649def37678f9.png

上传前一定要git add  后 git commit  最后才 git  push

git pull

git pull命令的作用是从远程仓库获取最新版本并合并到本地仓库,命令格式:

git pull [short-name] [branch-name]

8f17b7acb7db4a108fd13b1e1fb0c6e3.png

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文
件的时候会报错(fatal:refusing to merge unrelated histories)
解决此问题可以在gitpull命令后加入参数--allow-unrelated-histories

 八、分支操作

分支是Git使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
同一个仓库可以有多个分支,各个分支相互独立,互不干扰。

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

本节我们会学习关于分支的相关命令,具体如下:

git branch                                查看分支
git branch [name]                    创建分支
git checkout [name]                 切换分支
git push [shortName] [name]   推送至远程仓库分支
git merge [name]                     合并分支

1.查看分支

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

cf8c55d6f59641188cfd8905b13e1e14.png

2.创建分支

 创建分支命令格式:git branch [name]

3402ea57c4e8494f8a511a4c142c7e56.png

master是绿色的,代表当前所在的分支 

3.切换分支

 切换分支命令格式:git checkout [name]

bccb4c7b5cb74228a52714fe403cce5d.png

不同分支的工作区的目录下的文件是不同的。

4. 推送至远程仓库分支

推送至远程仓库分支命令格式:git push [shortName] [branch-name]

shortName是本地的仓库副本的别名

branch-name是分支的名字

091cda0dc93a49c6b2842dd0b29b512d.png

 39d8de7699ee484f8d15d3d712249da6.png

5.分支合并

命令格式: git merge [branch-name]

4ab169bd4d364da6b60a915b3779ef9c.png

上面的例子就是将b3分支里面的master分支里面没有的文件合并到master分支里面。

dd6210f87dba471b839a490353de0e90.png

九、标签操作

Git中的标签指的是某个分支某个特点时间点的状态。通过标签可以很方便的切换到标记时的状态。比较有代表性的是人们会使用这个功能来标记发布结点版本。(如v0.1,v0.2等)

下面是mybatis-plus的标签(代表版本)

89efb2a6d9d248098023db942565b609.jpg

 和标签相关的命令:

git tag                          列出当前仓库的所有标签

git tag [tag-name]      创建一个当前分支的标签

git push [shortName] [tag-name]   将当前仓库的一个标签推送到远程仓库

git checkout -b [newBranchName] [tag-name] 检出标签就是创建一个新的分支存储标签记录的一个分支的状态即分支的工作区的所有文件及内容

十、idea2023中使用git(更方便更简单)

1.配置git

idea设置里面版本控制里面Git设置Git的可执行文件的路径

右边测试完下面可以显示Git的版本。

 2.获取Git仓库

(1)本地初始化仓库

(2)克隆远程仓库

(3).gitignore文件 

该文件的作用就是指定项目中的哪些文件不需要git管理

(4)将文件加入暂存区

第一种方式:

在我们新创建一个文件(什么文件都会),idea自动提示是否加入暂存区

没加入暂存区的文件在idea里面显示的是红色

 第二种方式:

选择爆红的文件,右击选择Git,再选择添加

添加完就变绿色了

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

提交单个文件

在选择这个文件右击,选择Git,选择提交文件

提交完,该文件会显示普通的白色。

提交多个文件 

1.点击左边框的提交按钮

2.勾选你想要提交的文件

 

3.写注释说明,后点击提交 

 

(6)查看日志

idea最左下角

(7)查看远程仓库

按下面的步骤就可以查看当前仓库关联的远程仓库

 

(8)添加远程仓库

一个本地仓库可以对应多个远程仓库,点击上面的加号就可以添加其他远程仓库的url 

 (9)推送远程仓库

第一种:

第二种: 

(10)从远程仓库拉取

(11)查看分支

(12)创建分支

你在哪个分支下面创建分支,那么这个新分支就是克隆当前分支,内容一样

(13)切换分支

从master分支切换到b1分支

(14)将分支推送到远程仓库

选择你要推送的分支到远程仓库

 (15)合并分支

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2097479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于 cuda sdk 12.4.1安装cudnn8.9.7 步骤备忘——与cudnn9有差别

cuda环境崩了&#xff0c;运行 nvidia-smi后无法 连接 drvier&#xff0c;重装了 cuda 12.4.1 cudnn 8.9.7 因为看到pytorch daily 代码目前是支持 12.4的。发现 cudnn8 与 nv官网提供的cudnn9的安装时在文字上稍微有些差别&#xff0c; 主要是 cudnn8: sudo apt-get -y i…

水凝胶支架进行4D生化光定制?有啥用?快来看看!

大家好&#xff0c;今天我们来了解一项关于水凝胶支架的技术——4D生化光定制——《4D Biochemical Photocustomization of Hydrogel Scaffolds for Biomimetic Tissue Engineering》发表于《Accounts of Materials Research》。随着科技的发展&#xff0c;人们对组织工程和生物…

【C++】C++STL 揭秘:Strng背后的底层逻辑

C语法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用 在上篇介绍string类的使用与理解&#xff0c;本篇将为大家来带关于string的底层实现逻辑&…

「SpEL Validator」使用指南(一套无敌的参数校验组件)

前言 这是一套全新的参数校验组件&#xff0c;并非造轮子。 看完本文你可能会觉得用不上或不屑于使用&#xff0c;但这玩意确实有应用场景&#xff0c;你不妨稍微留意一下&#xff0c;日后你总会发现有用得上的时候。 此乃系列文章&#xff0c;当前为第②篇&#xff0c;其他…

Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping

概述 随着互联网的发展&#xff0c;网页数据抓取&#xff08;Web Scraping&#xff09;已成为数据分析和市场调研的重要手段之一。Puppeteer作为一款强大的无头浏览器自动化工具&#xff0c;能够在Node.js环境中模拟用户行为&#xff0c;从而高效地抓取网页数据。然而&#xf…

Java基于微信小程序的实习管理系统

简介 本次开发的实习生管理系统实现了字典管理、公告管理、公司管理、简历管理、老师管理、实习管理、实习日志管理、通知管理、学生管理、职位招聘管理、职位收藏管理、职位留言管理、简历投递管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库&am…

点云配准之ICP和NDT算法的高斯牛顿法求解

ICP算法 NDT算法 代码&#xff1a;https://github.com/taifyang/pointcloud-registration 参考&#xff1a;高翔《自动驾驶与机器人中的SLAM技术》

打造灵动空间,流动会场的声学优势—轻空间

在现代社会中&#xff0c;各类会议、展览、演出、培训等活动越来越多&#xff0c;对场地的需求也越来越多样化。传统的固定场地往往难以满足不同活动的需求&#xff0c;而“流动会场”凭借其灵活多变的特点&#xff0c;迅速成为各类活动的新宠。特别是其独特的声学优势&#xf…

【数据结构】二叉树的链式结构,二叉树的遍历,求节点个数以及高度

目录 1. 二叉树链式结构的概念 2. 二叉树的遍历 2.1 前序遍历 2.2 中序遍历 2.3 后序遍历 2.4 层序遍历 3. 二叉树的节点个数以及高度 3.1 二叉树节点个数 3.2 二叉树叶子节点个数 3.3 二叉树的高度 3.4 二叉树第k层节点个数 3.5 二叉树查找值为x的节点 4. 二叉树…

数造科技荣登“科创杯”领奖台,开启数据驱动新篇章!

8月27日&#xff0c;第十三届中国创新创业大赛(海南赛区)暨海南省第十届“科创杯”创新创业大赛决赛在海口圆满落幕。数造科技凭其在大数据管理领域的专业技术实力&#xff0c;荣获成长企业组三等奖。 突出重围&#xff0c;崭露头角 海南省“科创杯”创新创业大赛是在中国科技…

安科瑞ADL系列导轨式多功能电能表 带外置互感器 CE认证

产品概述&#xff1a; ‌安科瑞ADL系列导轨式多功能电能表‌是安科瑞企业微电网能效管理事业部推出的一款智能仪表&#xff0c;主要针对光伏并网系统、微逆系统、储能系统、交流耦合系统等新能源发电系统设计。这款电能表具有高精度、体积小、响应速度达100ms&#xff0c;以及…

噪音消除模块调研

一.原理 1.1降噪 noisereduce 库的 reduce_noise 函数使用的是一种基于频谱减法的噪声消除算法。它通过分析音频的频谱&#xff0c;识别出噪声成分&#xff0c;并尝试将这些噪声成分从音频信号中去除&#xff0c;从而提升信号的清晰度。 1.2 动态范围压缩&#xff08;预加重&am…

Ollama:本地大语言模型解决方案

在人工智能领域&#xff0c;大语言模型&#xff08;LLM&#xff09;因其在自然语言处理上的强大能力而备受瞩目。然而&#xff0c;这些模型往往需要大量的计算资源和网络连接&#xff0c;限制了它们在本地环境的应用。Ollama 的推出&#xff0c;为这一问题提供了解决方案。作为…

基于C语言实现文件压缩与解压缩算法

引言 随着互联网的发展&#xff0c;数据传输和存储的需求日益增长&#xff0c;文件压缩技术成为提高数据处理效率的关键技术之一。压缩技术不仅可以减少存储空间的需求&#xff0c;还能加快数据在网络中的传输速度。霍夫曼编码作为一种有效的无损数据压缩算法&#xff0c;广泛…

如何为你的 LLM 应用选择最合适的 Embedding 模型

如果你正在构建 2024 年的生成式人工智能&#xff08;GenAI&#xff09;应用&#xff0c;你现在可能已经听过几次 "嵌入&#xff08;embedding&#xff09; "这个词了&#xff0c;而且每周都能看到新的嵌入模型上架。 那么&#xff0c;为什么会有这么多人突然关心起嵌…

ElasticSearch 集群索引和分片的CURD

一、ES集群的索引 背景&#xff1a;Elasticsearch会对所有输入的文本进行处理&#xff0c;建立索引放入内存中&#xff0c;从而提高搜索效率。在这一点上ES优于MYSQL的B树的结构&#xff0c;MYSQL需要将索引放入磁盘&#xff0c;每次读取需要先从磁盘读取索引然后寻找对应的数据…

OpenAI Gym custom environment: Discrete observation space with real values

题意&#xff1a;OpenAI Gym 自定义环境&#xff1a;具有实数值的离散观测空间 问题背景&#xff1a; I would like to create custom openai gym environment that has discrete state space, but with float values. To be more precise, it should be a range of values wi…

翻译软件 Fastrans 开发日志 #2

就过了几天&#xff0c;我的 Fastrans 项目&#xff08; https://github.com/YaoqxCN/Fastrans &#xff09;又更新了两个版本&#xff0c;现在是 v1.1.1。&#xff08;求个 star 谢谢&#xff01;&#xff09; 上次我初步实现了 Fastrans 的翻译功能以及 UI&#xff0c;可以看…

【C++ Primer Plus习题】8.1

问题: 解答: #include <iostream> using namespace std;void print(const char* str) {cout << str << endl; }void print(const char* str,int size) {static int count 0;count;for (int i 0; i < count; i){cout << str << endl;} }int…

机器学习数学公式推导之线性回归

文章目录 线性回归一、最小二乘法1.1 范数的概念1.2 最小二乘法的推导1.3 几何意义 二、噪声为高斯分布的 MLE2.1 LSE&#xff08;最小二乘估计&#xff09;2.2 MLE&#xff08;极大似然估计&#xff09;2.3 LSE与MLE的联系与区别 三、权重先验也为高斯分布的 MAP四、正则化4.1…