当前位置: 首页 > news >正文

git安装教程+IDEA集成+客户端命令全面讲解

1 git下载教程

打开git官网
点击首页的Downloads选项
在这里插入图片描述
选择你系统对应的版本,我这里以windows为例
在这里插入图片描述
选择x64位下载
在这里插入图片描述
会往你本地下载一个exe文件
在这里插入图片描述
双击
在这里插入图片描述
可以更改下载文件夹(我就默认放C盘了)
在这里插入图片描述
这里也默认,点击next
在这里插入图片描述
默认就行,点击next

在这里插入图片描述
这里可以选择你喜欢的编辑器,默认是Vim的
(ps:学过linux或者unix肯定接触过vim编辑器,就是i可以改位插入模式,Esc退出插入模式,:wq保存退出编辑,我感觉用着不习惯啊,所以我选择Visual Studio Code,根据你们电脑上有的软件选择就好了,没必要再下载一个)
在这里插入图片描述
这里省略图片了,一路默认next就好了,到最后选择Install
在这里插入图片描述
在这里插入图片描述
要验证是否下载成功,可以鼠标右键查看是否有这两个工具就好了
在这里插入图片描述

2 远程托管平台使用介绍

2.1 Gitee仓库创建

登录Gitee官网,没有账号的话,自己注册一个
左侧是你仓库项目的展示,我们选择右上角新建仓库
在这里插入图片描述
填写仓库名称(一般和项目名称相同,也可以不同,不能和仓库中的其它仓库重名)
填写仓库介绍(一般填写下项目介绍就好)
选择是否开源
点击创建
在这里插入图片描述
仓库创建好后,我们用HTTPS的网址,拷贝到本地(请跳转3.1小节查看拷贝操作)
在这里插入图片描述

2.2 GitHub仓库创建

首先登录GitHub官网,需要魔法,账号用邮箱就可以,很好创建
登录成功后,选择右上角“+”号,点击New repository,也就是新建仓库的意思
在这里插入图片描述
和Gitee步骤一致,填写仓库名称、仓库描述、是否开源就好了
在这里插入图片描述
创建成功后,可以用HTTPS的网址进行拷贝(具体操作跳转3.1小节查看)
在这里插入图片描述

3 IDEA集成Git

3.0 前置操作

首先我IDEA上有这4个和git相关的插件,没有的可以下载下
在这里插入图片描述
Gitee是中国的一个远程代码托管平台
GitHub是国外的一个远程代码托管平台
GitLab支持自己搭建代码托管平台
我这里以Gitee为例,网络较为稳定
(ps:GitHub也是类似的,使用方式差不多,只是推送或拷贝时,可能网络不稳定,得多尝试几次)

3.1 拷贝项目

打开IDEA,选择File–>New–>Project from Version Control
在这里插入图片描述
如果没有默认打开的项目的话,入口在这里
在这里插入图片描述
将HTTPS的URL拷贝到这里,Directory是存放你拷贝的项目的文件路径
在这里插入图片描述
拷贝成功,下面是一些git相关操作的存放位置
在这里插入图片描述

3.2 新建分支

如果在企业中使用,一般需要新建分支,如下:
一个项目包含用户模块开发和订单模块开发,两个人在各自分支进行开发
在这里插入图片描述
等待开发完毕后,再由主分支合并一次就好
在这里插入图片描述
接下来在IDEA中新建分支,发现图标为灰色,无法新建分支
(ps:由于我们一次都没有提交,就相当于main主分支都不存在,故不能新建分支)
在这里插入图片描述
我们先创建一个a.txt文件,提交一次
(ps:接下来是进行第一次提交,一般这个操作是仓库管理员提交的,你拷贝下来时,就是已经有过提交记录了,这个时候直接创建分支就好了)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击左下角,我们可以看到本地已经有了一次提交
在这里插入图片描述
接下来,我们提交到远程仓库中
右键master–>选择push
在这里插入图片描述
点击push(如果没有连接过Gitee账号,这里可能需要你输入Gitee账号)
在这里插入图片描述
push成功后,可以看到远程多了一次提交
在这里插入图片描述
接下来就可以创建分支了
在这里插入图片描述
我们创建了一个名为user的分支,并勾选了Checkout branch(表示会自动切换到user分支)
在这里插入图片描述
我们在user分支,新建一个user.txt文本文件,提交
在这里插入图片描述
在这里插入图片描述
接下来是进行push操作,记住是选择user,进行右键
(ps:因为master没有新的提交,所以选择push也是没有东西可以提交的)
在这里插入图片描述
点击push
在这里插入图片描述
这时候远程仓库,也自动新增了一个user分支
(ps:我第一次学习时,以为user分支只是我本地的分支,我提交时,还是会提交到远程的master的分支上,其实是提交到了远程的user分支,没有也会自动创建)
在这里插入图片描述

4 易混淆问题

4.1 全拷贝还是浅拷贝?

请问:
如果远程有两个分支,master分支有三次提交记录C1,C2,C3,user分支有三次提交记录,C1,C4,C5,请问这时候你拷贝代码到本地,本地有几次提交呢?

远程 origin/master: C1 → C2 → C3 
远程 origin/user: C1->C4->C5

答案:

4.1.1 全拷贝

默认情况下,本地会将远程仓库的所有分支所有提交记录都拷贝下来,拷贝情况如下
在这里插入图片描述

4.1.2 浅拷贝

但是,如果拷贝时,勾选了Shallow clone with a history truncated to 1 commits
(将历史记录截断为1次提交的浅克隆)
在这里插入图片描述
拷贝结果如下:只会拷贝master分支的最后一次提交
在这里插入图片描述
如果这时候本地又创建了user分支,新建了一个文件,提交到本地仓库时,一切正常,如果要push到远程仓库,就会遭到拒绝
在这里插入图片描述
在这里插入图片描述

4.2 push为什么遭到拒绝?

项目开发中很可能遇到这种问题
例如你拷贝时,远程仓库只有C1,C2,C3,C4四次提交,你在本地提交了C7,C8,但你的同事,也修改了,并且先你一步push到了远程仓库C5,C6,这时候你该怎么提交呢?

远程 origin/master: C1 → C2 → C3 → C4 → C5 → C6
你的本地 master:    C1 → C2 → C3 → C4 → C7 → C8

如果直接push,会遭到拒绝,有两种解决方案
在这里插入图片描述

4.2.1 Pull+Rebase

Pull是“拉取”代码的意思
Rebase是“变基”的意思
执行该命令后,你的本地会变成
(ps:C7’,C8’是合并C7后的代码)

你的本地 master: C1→C2→C3→C4→C5→C6→C7'→C8' (C7'、C8'是变基后的新提交)

这时你再push,远程仓库将变成

远程 origin/master:  C1→C2→C3→C4→C5→C6→C7'→C8'

4.2.2 Pull+Merge

Merge是“合并”的意思
执行完命令后,你的本地会变成
(ps:C9是C8和C6合并完的结果)

你的本地 master: C1→C2→C3→C4→C7→C8→C9↗C6

这时你再push,远程仓库将变成

远程 origin/master: C1→C2→C3→C4→C7→C8→C5→C6→C9

通过拷贝远程仓库,看到图形化结果
虽然只有一个master,但可以清晰的看到合并记录
以及代码是从哪里发生合并的
在这里插入图片描述

4.2.3 两者优劣对比

拉取并变基础pull and rebase多人协作时保持提交历史整洁,线性,无合并记录
拉取并合并pull and merge简单直接,不想改变本地的提交历史时,有合并记录

5 遇到的问题汇总

5.1 GitHub账号关联失败

首先介绍一下我遇到的问题

5.1.1 Log in via GitHub 账号关联失败

选择方式一时,例如:Log in via GitHub
在这里插入图片描述
会报这个错误
在这里插入图片描述

5.1.2 Log in with Token 账号关联成功,但push失败

后来看别人的博客说用第二种方式,Log in with Token
在这里插入图片描述
点击Generate自动跳转
在这里插入图片描述
只用选择有效期和权限就好了,
(ps:刚开始权限我用的默认的,push失败,重新创建token,把所有权限都勾上了,还是push失败,你们可以自己试试)

在这里插入图片描述
选择完后,滑到最下面,点击Generage Token
在这里插入图片描述
将生成的token复制到Token列表,账号就可以关联成功了在这里插入图片描述这时候,账户可以添加成功,但是push时,还是失败,报下面的错误
(Cannot load information for github.com/lhl555:Requestresponse: Access to this site has been restricted. lf you believethis is an error, please contact https://support.github.com)在这里插入图片描述

5.1.3 更新IDEA,最终解决

应该是版本的问题,我最后选择更新IDEA,我更新到了最新版2025.2,然后直接用的方式一就关联成功了。
就是版本问题,让我折腾了一上午

6 基于命令行的git操作

Git自带命令行工具

任选一个空的文件夹,例如:我选择E盘下的git文件夹
右击,选择Open Git Bash here
在这里插入图片描述
成功打开了命令行界面
在这里插入图片描述

如何初始化一个git仓库?

在命令行窗口执行

git init

可以看到该文件夹被添加了.get文件,这是git管理该文件夹为仓库的标志
(ps:如果看不到,可能被隐藏了,设置可以查看隐藏文件)
在这里插入图片描述

如何提交一个文件到本地仓库?

首先手动增加a.txt和b.txt文件
在这里插入图片描述

通过该命令,可以查看工作区、暂存区文件变化

git status

可以看到一个a.txt和b.txt文件未被追踪(也就是在工作区)
在这里插入图片描述
想要提交到新增文件到本地版本库,需要先add该文件到暂存区
再通过commit命令提交到版本库
通过下面的案例,可以看到,git只会commit暂存区中的文件
在这里插入图片描述
为什么在IDEA操作时,只有commit一步呢?没看到add的步骤啊?
答案:因为UI操作界面简化了操作,方便用户使用;而在命令行界面,必须先add,才能commit

如何查看提交历史

git log #展示详细的信息
git log --oneline #展示信息简化为一行

两者的区别就是,展示每条提交记录时,是展示详细信息,还是只展示一行信息
在这里插入图片描述

如何克隆远程仓库项目

为了方便展示,我新建了一个空的文件夹,名为E:\clone
在这里插入图片描述
在这里右击—>Open Git Bash here打开命令行工具
到Gitee官网,选择HTTPS的方式克隆

git clone https://gitee.com/liu-huale/remote-gitee-testpublic.git <自己决定你的本地仓库名称>

不起名字就默认同名哈,我这里省略自己起名字了
在这里插入图片描述
进入到该文件夹内,重新右击—>Open Git Bash here打开命令行工具
新增了一个111.txt文件,通过git status,可以看到能够正常被识别
在这里插入图片描述
提交到本地仓库

git add 111.txt
git commit -m 创建111.txt文件

在这里插入图片描述

如何提交到远程仓库

可以通过一下命令

git remote #查看已关联的远程仓库
git remote add <远程仓库别名> <远程仓库URL> #新增远程仓库关联
git push <远程仓库别名> <本地分支名> #提交代码到远程仓库

在这里插入图片描述
填写完用户名密码后,可以看到上传成功
在这里插入图片描述

误删文件如何恢复

如果我误删了f.txt文件,但没有commit

git restore f.txt

可以通过restore恢复,原理是上一次commit有f.txt完整备份
在这里插入图片描述
如果我误删了f.txt,并且commit了
这时候restore不管用了,它会报错说找不到
在这里插入图片描述
我们可以用reset命令恢复

git log #先获取提交ID
git reset --hard <提交ID> #再rest恢复到指定版本

在这里插入图片描述
这样做有一个弊端,就是会丢失提交记录
如果不想丢失提交记录,可以用revert命令

git revert <提交ID> #新增一个指定版本

执行完该命令后,发现“误删f文件”的提交记录并没有被删除,反而新增了一个提交记录,该新增的提交记录就是将ec6284c拷贝了一份,放到最前面提交
(ps:这样的好处不言而喻,就是不会丢失提交记录)
在这里插入图片描述

http://www.dtcms.com/a/388918.html

相关文章:

  • rsync带账号密码
  • rust语言项目实战:生成双色球、大乐透所有玩法的所有数字组合(逐行注释)
  • 远程配置服务器 ubuntu22.04 里的 docker 的x11
  • rust编写web服务03-错误处理与响应封装
  • Docker基础篇07:Docker容器数据卷
  • WPF 拖拽(Drag Drop)完全指南:从入门到精通
  • rust编写web服务05-数据库连接池
  • AppInventor2使用本地SQLite实现用户注册登录功能
  • Prompt(提示词工程)优化
  • Ubuntu 系统安装 PostgreSQL 17.6
  • Kotlin-基础语法练习四
  • 开源的消逝与新生:从 TensorFlow 的落幕到开源生态的蜕
  • 原创GIS FOR Unity3d PAD VR LINUXPC 同时支持。非cesium
  • Kotlin中协程的管理
  • django如何自己写一个登录时效验证中间件
  • 【大前端++】初始技术栈跨平台方案Electron+Vue,MacOS开发环境搭建【十分钟一个Demo】
  • 限时起售价17.38万元,吉利银河M9上市
  • Vue : defineModel()
  • 一套基于Java+Vue+UniApp开发的同城配送系统
  • Vue 3 手机外观组件库
  • 部署分布式CephFS,存储的服务器的最低配置
  • 【Spring AI】Ollama大模型-智能对话实现+项目实战(Spring Boot + Vue)
  • Vue 3 实战:GIS 系统模块化设计与多功能融合方案
  • Docker多容器编排:Compose 实战教程——从入门到精通
  • Vue2 基础知识点一:数据绑定 (Data Binding)
  • layui tree组件回显bug问题,父级元素选中导致子集全部选中
  • centos7上使用Docker+ RagFlow + ollama + 数据集 搭建自己的AI问答机器人(2025-09)
  • # 从 Gymnasium 到 Minari:新一代机器人强化学习工具链全指南
  • 系统架构设计师备考第27天——基于构件的软件工程
  • Centos下安装docker