git一篇就够了


1、Git的工作原理

Git本地有三个工作区域:工作目录、暂存区(Stage/Index)、资源库(Repository)
加上远程的git仓库(Remote Directory)就是四个工作区域
在这里插入图片描述
WorkSpace:工作区,存放项目代码的地方
Stage:暂存区,用于存放你的改动
Respository:仓库区(本地仓库),安全存放数据的位置,在这保存你所有版本的数据。HEAD指向最新存入仓库的版本
Remote:远程仓库,托管代码的服务器。

SVN 和 Git 区别

1)SVN是集中式控制系统,版本库是集中放在中央服务器中,每个人开发时需要从集中服务器中获取最新版本,完成各自任务后,需要推送到集中服务器中,必须要联网才可以工作

2)Git时分布式版本控制系统,没有中央服务器,每个人的电脑就是一个版本库,工作不需要联网。

2、Git安装

官方网址:https://git-scm.com/
下载Git软件:
在这里插入图片描述
选择 Git 安装位置,要求是非中文并且没有空格的目录,然后下一步。
在这里插入图片描述
Git 选项配置,推荐默认设置,然后下一步

在这里插入图片描述
Git 安装目录名,不用修改,直接点击下一步
在这里插入图片描述
Git 的默认编辑器,建议使用默认的 Vim 编辑器,然后点击下一步
在这里插入图片描述
默认分支名设置,选择让 Git 决定,分支名默认为 master,下一步
在这里插入图片描述
修改 Git 的环境变量,选第一个,不修改环境变量,只在 Git Bash 里使用 Git
在这里插入图片描述
选择后台客户端连接协议,选默认值 OpenSSL,然后下一步
在这里插入图片描述
配置 Git 文件的行末换行符,Windows 使用 CRLF,Linux 使用 LF,选择第一个自动转换,然后继续下一步。

在这里插入图片描述
选择 Git 终端类型,选择默认的 Git Bash 终端,然后继续下一步
在这里插入图片描述
选择 Git pull 合并的模式,选择默认,然后下一步
在这里插入图片描述
选择 Git 的凭据管理器,选择默认的跨平台的凭据管理器,然后下一步

在这里插入图片描述
其他配置,选择默认设置,然后下一步
在这里插入图片描述
实验室功能,不要勾选,然后点击右下角的 Install按钮,开始安装 Git。
在这里插入图片描述
点击 Finsh 按钮,Git 安装成功!
在这里插入图片描述
右键任意位置,在右键菜单里选择 Git Bash Here 即可打开 Git Bash 命令行终端
在这里插入图片描述
在 Git Bash 终端里输入 git --version 查看 git 版本

3、Git 常用命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户签名
git init初始化本地库
git status查看本地库的状态
git add 文件名 将文件添加到暂存区
git commit -m "日志信息" 文件名 提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭

1.何查看和修改用户名、邮箱

为什么要设置用户名、邮箱呢?
因为在变更代码时,我们需要知道是谁变更的代码,以及在出问题会自动发送邮件给该邮箱。
1)基本语法

查看用户名 和 邮箱
git config user.name
git config user.email
修改用户名 和 邮箱
git config --global user.name 用户名
git config --global user.email 邮箱

2)实操操作解决
修改用户名错误:cannot overwrite multiple values with a single value
在这里插入图片描述
解决方法:

git config --global --replace-all user.name "yecy"

注意:
签名的作用是区分不同的操作者的身份(区分、标识一下的作用)。用户的签名信息在每一个版本的提交信息中能看到,是谁提交的。
Git首次安装必须设置用户签名,否则无法提交代码,这里设置的用户签名和登录Github的账号没有任何关系
可以在文件中查看设置的用户签名和邮箱信息:
在这里插入图片描述

2.初始化本地库

1)基础语法
使用Git管理该目录,就得让git获取管理权

git init

2)实际操作
会在目录下生成一个.git文件(该文件是隐藏的)【】
在这里插入图片描述

探秘.git文件

一直好奇,.git文件中到底是什么文件呢??
在这里插入图片描述
1)HEAD文件:保存正在工作在哪个分支上的信息
在这里插入图片描述
2)config文件:配置信息
在这里插入图片描述
3)refs目录:保存各个分支的信息,如master、test分支

3. 查看本地库状态

1)基础语法

git status

2)实际操作
首次查看(工作区没有任何文件)
在这里插入图片描述
有文件在目录下:新增文件(hello.txt)
在这里插入图片描述

4.添加暂存区

将工作区的文件添加到暂存区
1)基本语法

git add 文件名
# 提交多个文件到暂存区
git add 文件1 文件2  .....

# 把有文件一起提交到暂存区
git add -u 

2)实际操作
在这里插入图片描述
查看状态(检测到暂存区有新文件)
在这里插入图片描述
只是提交到暂存区,可以从暂存区删除该追踪的文件

git rm --cached hello.txt

在这里插入图片描述

给文本重命名的便捷方式

把本地文件名字修改(该文件已经commit了)

把本地文件read改为了readme.md,并且提交readme.md到暂存区,暂存区的read 文件被修改为readme.md
git mv read readme.md

5. 提交本地库

将暂存区的文件提交到本地库,并附带版本号
1)基本语法

git commit -m "日志信息" 文件名

2)实际操作
在这里插入图片描述
在这里插入图片描述

6. 修改文件

1)查看修改文件的状态 (红色表示没有被追踪【没有添加到暂存区】

在这里插入图片描述
2)将修改的文件再次添加暂存区

git add hello.txt

在这里插入图片描述
3)提交到本地库并查看提交信息

git reflog
git log

在这里插入图片描述

7.历史版本

1)基本语法

查看版本信息
git reflog 


查看版本详细信息
git log 

图形化查看变更信息
gitk

2)案例实操
在这里插入图片描述

8.版本穿梭

首先得获得版本号,通过git reflog 查看版本号

git reset --hard 版本号

在版本穿梭过程中,hello的内容会发生改变~~,文件的会发生相应的改变。
本质:存了很多版本号,指针指向具体的指针位置来修改。
在这里插入图片描述

4、Git 分支操作

4.1、分支概念理解

在版本控制过程中,同时推进多个任务,为每个任务,可以创建一个单独的分支。分支底层其实也是指针的引用
分支的好处:同时并发推进多个功能模块,提高开发效率。
在分支开发过程中,如果一个分支开发失败,不会对其分支有任何影响,失败的分支删除重新开始即可。

4.2、分支的操作

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

4.2.1、查看分支

1)基本语法

git branch -v

2)实际操作
在这里插入图片描述

4.2.2、创建分支

1)基本语法

git branch 分支名

2)案例实操
在这里插入图片描述

4.2.3、修改分支

vim hello.txt
git status
git add hello.txt
git commit -m "修改master分支的文件" hello.txt
git status

操作截图:
在这里插入图片描述

4.2.4、切换分支

1)基本语法

git checkout 分支名

2)案例实操
在这里插入图片描述

4.2.5、 合并分支

1)基本语法
把指定的分支合并到当前分支上,比如需要把test合并到master主支上,需要切换到master上

git merge 分支名

2)实际操作
在这里插入图片描述

4.2.6、发生冲突的解决

冲突产生的表现:后面状态为 MERGING
在这里插入图片描述
提示冲突正在合并中:MERGING
在这里插入图片描述

产生冲突的原因:

在合并分支时,两个分支在同一个文件的同一个位置,有两套完全不同的修改,Git无法替代我们做决定,必须人为决定。

解决冲突

1)编辑有冲突的文件,删除特殊符号,决定使用的内容
<<<<<< HEAD
当前分支代码

====
合并过来的代码
》》》》 合并分支名

2)添加到暂存区

git add hello.txt

3)执行提交(注意,此时使用的git commit 命令不能带文件名

git commit -m "合并分支"

合并成功时,MERGING会消失!!!

5、IDEA集成Git

1)忽略 .idea 、workspace.xml等无关文件

需要创建一个文件 git.ignore

# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml

2)初始化本地库

初始化本地库在项目所存的位置
在这里插入图片描述

3)添加到暂存区

右键点击项目选择Git -> Add将项目添加到暂存区
在这里插入图片描述

4)提交到本地库

在这里插入图片描述

5)切换分支

在这里插入图片描述

6)创建分支

在这里插入图片描述

7)合并分支

需要切换到合并到的分支上,如把test分支合并到master,需要切换到master上,在test右键合并分支操作
在这里插入图片描述

8)解决冲突

一般需要手动,修改代码。
在这里插入图片描述

9)通过远程url获取项目 (直接拉去比较多)

在这里插入图片描述

6、实际开发中合并分支

合并分支步骤:

1)在test分支提交并push后
2)切换到develop 环境下(需要pull最新代码)
3)点击git 选择需要合并的(是修改过的文件),选中所有的文件,点击一个Cherry-Pick按钮,在push就完成


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值