Git 安装和基础命令、IDEA 基础操作

目录

总结命令:

工作区、暂存区、版本库(本地仓库)、远程仓库

工作区:项目代码放在自己电脑的文件夹,就叫工作区

【git add .】 把工作区的代码提交到暂存区

【git commit -m "" 】 把暂存区的代码提交到版本库

【git reset 】 回退版本

【git rm 】 删除文件

【git checkout -- 文件名 】 来撤销这次的文件修改内容

【git checkout 】 切换分支

【git log 】查看日志

【git reflog】查看所有分支记录日志

【git status 】 查看状态

【git diff 】查看不同

【git push 】 推送

【git pull 】拉取

【git clone 】 克隆

【git branch 】创建分支

【git mergr 】合并分支

1、安装:

1、安装

https://blog.csdn.net/apple_53947466/article/details/123455014

https://blog.csdn.net/mukes/article/details/115693833

全部都是下一步,选择默认的

2、配置环境变量:

右键任意位置,在右键菜单里选择 Git Bash Here 即可打开 Git Bash 命令行终端。

安装成功:查看版本信息

2、Git操作:

1、初始化:

1、姓名邮箱:

配置用户姓名和邮箱,查看是否配置成功

个人信息,这两条命令只需要运行一次就可以了

2、初始化仓库:

git init 命令生成一个文件夹作为git的可以管理的仓库


修改下git的仓库位置

用快捷方式打开就可以,用鼠标右键打开就还是显示在桌面

快捷方式打开

鼠标右键打开

创建一个文件假设为项目的目录,然后交给git来进行管理。

提交文件

3、工作区和暂存区分析

2、提交文件

提交一个文件 git add 文件名

提交当前文件夹目录下的所有文件或者文件夹 git add .

把暂存区的文件提交到本地仓库 git commit -m "-m后面写提交的备注"

把多个文件或者文件夹提交到暂存区或者本地仓库

多次 add 是覆盖上去的,每次commit之前都可以先add下

3、查看版本库状态

查看版本库(本地仓库)状态

git status # 查看当前git版本库的状态(查看缓存区中的文件内容)

4、安装小乌龟

用来看文件图标

先安装第一个,然后安装第二个,第二个是用来修改语言的,只需要打开就可以了。

但是还没有变成中文的,先不理

git不显示图标

修改注册表,用来显示图标

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\

测试

创建文件--?号

提交到暂存区--+号

提交到本地仓库--√号

修改文件后,还没提交就会变成红色感叹号,查看状态如图

5、查看提交日志

git log 用来查看 git 提交记录

最近提交的信息显示最前面

简洁查看日志

git log 命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

git log --pretty=oneline

显示日志漂亮一点

java 复制代码
git log --graph --pretty=``format``:``'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'` `--abbrev-commit --

6、查看差异

就是查看文件修改了哪些内容

git diff # 查看不同版本之间的文件差异

git diff xx文件 单独查看某个文件修改了什么内容

7、版本回退

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

git reset --hard HEAD HEAD表示回退到当前版本(相当于没变化)

git reset --hard HEAD^ 一个异或符号^表示上一个版本

git reset --hard HEAD^^ 两个个异或符号^表示上上一个版本

git reset --hard HEAD~10 HEAD~10表示回退到第前10个版本

git reset --hard 指定版本号 回退到指定版本号,git log 查看版本号

==================

把版本从第三版本回退到第一版本,那怎么把第一版本重新退到刚才的第三版本

可以根据版本后进行回退

问题:d文件有三个版本,我从第三版本回退到第一版本,然后用 git log 命令查看提交日志,可以只显示了d文件的第一代版本的id,这个时候我想要重新回到 第三版本,应该怎么弄。

答:有head 和 sort 的区别

head 是把暂存区和本地仓库和项目都一起回退,回退后之前的就找不到了。

日志多的话,可以用按键PgUp 和 PgDn上下翻页

按 Q 退出

8、撤销修改

a文件修改后还没有进行add和commit,

用命令 git checkout -- 文件名 来撤销这次的文件修改内容

a文件修改后进行add,把文件从工作区add提交到暂存区后进行撤销操作。

结果就是撤销到暂存区后的状态

把a文件修改后commit到版本库(本地仓库),那么撤销后a文件的状态还是跟add在暂存区的样子是一样的

总之,就是让这个文件回到最近一次 git commitgit add 时的状态。

注意:
git checkout -- file 命令中的 -- 很重要,没有 -- ,就变成了**"切换到另一个分支"**的命令,我们在后面的分支管理中会再次遇到 git checkout 命令

9、删除文件

总结:

1、在工作区用鼠标右键删除一个文件,暂存区和版本库依然还有这个文件,需要进行add和commit,把暂存区和版本库里面的这个文件一并删除掉,才能保持工作区、暂存区和版本库三个地方数据一致

2、用 git rm 文件名 这个命令来删除文件,通过测试得出用命令删除文件,工作区和暂存区的文件会一起删除掉,但是版本库依然还有这个文件,只需要进行commit,让版本库也把这个文件给删除掉,就可以保持工作区、暂存区和版本库这三个地方的数据一致

如果发现自己删除错文件后,可以进行版本回退的操作。

我把文件b和文件c都删除了,然后通过命令回到上上个版本,就可以把b和c文件重新找回来了

1、直接鼠标右键把工作区的test文件删除掉后,暂存区和本地库还是有这个test文件的,需要进行add和commit,这样是为了工作区、暂存区和版本库数据保持一致,三个地方都把这个test文件给删除掉才算完整。

2、用git命令删除掉某个文件

用git命令把hello文件删除掉后,工作区和暂存区的hello文件就都没了,只需要进行commit把版本库的hello文件删除掉就行

3、测试在工作区用鼠标删除文件后,直接commit不进行add,会是什么结果。

测试前猜想:不进行add的话,工作区没有这个文件,暂存区还有这个文件,commit是把文件从暂存区提交到版本库,所以commit之后,暂存区和版本库依然有这个文件,只是工作区没有而已

测试后结果:

git ls-files 命令是用来查看暂存区中文件信息,查看后又没有d文件,跟所想的不一样

查看版本库的文件列表,也没有d文件

git ls-files --with-tree=HEAD

总结:鼠标右键删除掉文件后直接commit,好像三个地方都把文件删除掉了,但是这个情况我觉得不太对,先留着不理。

===================

我把工作区的c文件用鼠标右键删除掉,查看暂存区的文件列表,有c文件,正确

再查看版本库的文件列表

也有c文件,正确

然后我add把c文件删除的消息提交到暂存区,

然后可以看出add之后,暂存区的c文件也被删除了

然后查看版本库

因为还没有进行commit,所以版本库里面有c文件,也是正确的。

进行commit

可以看出版本库也把c文件删除掉了

==================

重新测试下把b文件用命令删除

然后查看暂存区和版本库有没有这个b文件,

按理说用命令删除的话,暂存区应该也删除了b文件,版本库还有这个b文件

**测试结果:**可以看出来,用命令删除b文件,工作区和暂存区的b文件都会同步删除掉,但是版本库不会,得进行commit才能把版本库的b文件也进行删除

进行commit之后,b文件也从版本库里面删除掉了

10、分支管理

Git 拥有强大的分支管理系统,且推荐在项目开发过程中大量的使用分支来解决各种项目中的问题

初始化仓库的时候,默认会有主分支master

1、查看分支

2、创建分支

处在master主分支来创建dev分支的时候,会把master的代码一并拷贝到dev分支里面去

3、切换分支

创建 + 切换分支:**git checkout -b

4、测试

删除dev分支的c文件,然后切换到主分支看c文件还在不在

(没有把dev合并到master之前,master主分支的c文件还是在的)

4、分支合并

现在功能写好了,要把dev合并到master主分支。

**将某分支合并到当前分支:**git merge

需求:把dev分支的代码合并到主分支master

需要把分支切换到主分支master,然后再执行 git merge dev 命令,

就是把某分支(dev)合并到当前分支(master)

切记不要合并错,合并的时候要切换到主分支。

5、删除分支

**删除分支:**git branch -d

先创建两个分支 dev1 和 dev2

在master删除 dev1

在dev2分支自己删除dev2

自己无法删除自己

切换到其他分支再来查看分支列表

发现dev2还在,没删除掉

原因:没注意到,在自己的分支不能删除自己

在其他分支成功删除dev2分支

总结:在自己的分支无法删除自己

提问:可以在dev分支删除主分支master吗?

测试:结果可以,可能是因为我还没有给分支加上权限限制

3、远程仓库

1、创建gitee仓库

2、连接远程仓库

git已经有仓库后执行的代码,在master位置连接仓库

java 复制代码
到指定位置
cd existing_git_repo
连接
git remote add origin https://gitee.com/xxxxx/git-remote-warehouse.git
推送
git push -u origin "master"

连接远程仓库成功后,本地的代码文件也提交到远程仓库去了

3、拉取gitee项目代码

1、创建一个文件夹存放代码

2、复制仓库地址

3、在指定文件夹打开git,输入命令

git clone 下载地址

代码就成功拉取下来了

4、IDEA操作

1、初始化仓库

在项目的文件夹打开git,然后输入命令 git init 进行初始化,然后就会出现 .git 文件夹

2、添加 .gitignore 文件

.gitignore 文件,用来省略一些提交文件,无关紧要的文件

java 复制代码
# Created by .ignore support plugin (hsz.mobi)
.gitignore

# Operating System Files

*.DS_Store
Thumbs.db
*.sw?
.#*
*#
*~
*.sublime-*

# Build Artifacts

.gradle/
build/
target/
bin/
dependency-reduced-pom.xml

# Eclipse Project Files

.classpath
.project
.settings/

# IntelliJ IDEA Files

*.iml
*.ipr
*.iws
*.idea

3、上传

输入 git add . 和 git commit -m "xxx" 把工作区的项目提交到暂存区和版本库。

把这个仓库的文件清空掉(清空仓库),然后把项目提交过去

复制命令

关联远程

java 复制代码
git remote add origin https://gitee.com/xxxxxxx/git-remote-warehouse.git

推送到远程的主分支

java 复制代码
git push -u origin "master"

push推送失败

文件超过100mb

//仅仅只是撤销已提交的版本库,不会修改暂存区和工作区

git reset --soft 版本库ID

//仅仅只是撤销已提交的版本库和暂存区,不会修改工作区

git reset --mixed 版本库ID

//彻底将工作区、暂存区和版本库记录恢复到指定的版本库

git reset --hard 版本库ID

选择撤销版本库和暂存区

顺序:

  1. 组员每次开发,都必须先 push 到自己的远程分支
  2. 每次对 master 分支做合并或推送之前,原地备份代码
  3. 组员(组长)确保自己分支的代码与 master 分支都没有错误以后,将本地 master 推送到远程
  4. 每天早上开发前,先切换到 master 分支,更新代码,确保是最新版本,如果有更新下来内容,同样先对整个项目进行备份,再切换到自己的分支,然后将 master 合并到自己的分支上
  5. 每个小组每天必须保证一份新的代码,即组员除了将代码提交到自己的分支以外,都必须再将自己的代码合并到master
  6. 再次强调,每次合并或推送前,都先对项目进行备份,避免操作不熟练导致出错后代码丢失
相关推荐
2401_854391083 分钟前
高效开发:SpringBoot网上租赁系统实现细节
java·spring boot·后端
Cikiss11 分钟前
微服务实战——SpringCache 整合 Redis
java·redis·后端·微服务
wxin_VXbishe12 分钟前
springboot合肥师范学院实习实训管理系统-计算机毕业设计源码31290
java·spring boot·python·spring·servlet·django·php
Cikiss13 分钟前
微服务实战——平台属性
java·数据库·后端·微服务
无敌の星仔22 分钟前
一个月学会Java 第2天 认识类与对象
java·开发语言
OEC小胖胖27 分钟前
Spring Boot + MyBatis 项目中常用注解详解(万字长篇解读)
java·spring boot·后端·spring·mybatis·web
2401_857617621 小时前
SpringBoot校园资料平台:开发与部署指南
java·spring boot·后端
quokka561 小时前
Springboot 整合 logback 日志框架
java·spring boot·logback
计算机学姐1 小时前
基于SpringBoot+Vue的在线投票系统
java·vue.js·spring boot·后端·学习·intellij-idea·mybatis
救救孩子把1 小时前
深入理解 Java 对象的内存布局
java