Git的配置与在idea中的应用


Git

0x0. GitHub用户信息

Username: fourgold
Email address: lijinxinok@163.com
密码:IELTS-rise-to-6.5-!
验证邮箱:lijinxinok@163.com
邮箱密码:qinni123!

0x1. Github常用命令

2.1初始化操作

#初始化本地仓库
git init
#查看隐藏文件./git
ls -lA
ll .git/
#.git存放的是本地库相关的子目录以及文件

#初始化本地配置 设置签名 这个签名和登录远程库和账号密码没有任何关系
#global代表的是系统用户级别
git config --global user.name JInxinLi
#初始化本地邮箱
$ git config --global user.email Jinxin@atguigu.com
#签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。

就近原则:项目级别的优先于系统用户级别,采用项目级别的签名

签名信息保存在哪里?

./git/config

系统用户保存在哪里?

~/.gitconfig

2.2实际操作

git add添加到暂存区还可以撤销

HEAD是一个指针

#查看主文档 暂存区与工作区的状态 默认matser分支
git status
#添加暂存区
git add
#提交到本地库 hello.txt是文件名1 
git commit -m "version1.0" hello.txt
#推送matser开发线到远程仓库
git push sparkStreaming master
#将远程仓库的内容克隆到本地
git clone http
#拉取远程仓库内容
git pull sparkStreaming master

#查看历史版本 (HEAD -> matser) HEAD是一个指针
git log
git reflog
#切换版本号
git reset --hard 087a1a7

#创建分支
git branch hot-fix
#查看分支
git branch -v
#切换分支
git checkout hot-fix
#合并分支
#注意当前分支为master
git merge hot-fix
#冲突解决后提交
git commit -m "merge hot-fix"

####新建别名url
git remote -v
git remote add origin https://url....
git remote -v
##推送
git push origin master
##克隆操作
git clone url
#回车
#完整的把远程库下载到本地
#创建origin远程地址别名
#初始化本地库

#邀请别人加入到协作组中
#点击邀请,就变成了团队成员

#pull = fetch+merge
git fetch origin master
#将远程库的master拉取下来

#切换到origin master
#查看远程的master分支[远程地址][远程分支]
git checkout origin/master
#合并远程的master分支[远程地址][远程分支]
git merge origin/master

git pull origin/master

冲突解决

当主分支已经提升了版本,而我们的clone的是旧版本,这个时候就已经无法推送

#解决,先拿到远程的修改 如果不是最新版所做的修改,不能修改,必须先拉取
git pull origin/master
#文件里东西修改
git add [filename]
git commit -m "version2.0"
git push origin/master

跨团队协作

#以第三者的身份先进行fork fork到自己的远程库
#克隆到本地
git clone url[自己的地址]
#然后进行增加内容
git commit -m "..." [filename]
git push origin master
#现在已经推送到自己的远程库
#本地修改,然后推送到远程
#new pull request
#create new pull result
#发送消息进行提交

#经理 打开pull request
#点击内容
#两人可以聊天

#点commits files changed
#审核代码

#merge pull request
#点这里进行合并
#合并的时候也要添加相关信息

展示的时候显示了来源

2.3查看历史记录log的方式

#最完整的形式
git log
#日志以一个漂亮的格式进行显示
git log --pretty=oneline
#hash值显示一部分
git log --oneline
#多屏幕显示控制方法
#空格向下翻页
#b向上翻页
#q退出
#在oneline的基础上显示了移动到某一个版本要移动几步
git reflog

注意HEAD

2.4版本回退穿梭

管理历史记录的时候存在一个指针(HEAD)

我们可以把HEAD指针进行移动

#切换版本号 
git reset --hard 087a1a7

2.5三种操作的参数

  1. 基于索引值操作[推荐]
  2. 使用^符号:只能往后退
#回退一步
git reset --hard HEAD^
#回退三步
git reset --hard HEAD^^^
  1. 使用~符号
#回退3步
git reset --hard HEAD~3

2.6参数说明

reset命令的三个参数对比

#查看本地帮助文档
git help reset
#命令
--soft
不会动index file(暂存区) and work tree(工作区)
仅仅在本地库移动HEAD指针
#将本地库后退
--mixed
在本地移动指针
重置暂存区
#将暂存区与本地库后退
--hard
移动指针
重置缓存区
重置工作区
#全部后退

2.7永久删除文件的保存

删除仅仅是一条记录,可以回退版本进行恢复

前提:删除前,文件存在时的状态提交到了本地库

git reset -hard[指针位置]

2.8添加到暂存区的删除文件找回

#暂存区与工作都是
git reset --hard HEAD

2.9比较文件差异

git diff test.txt
git diff [本地区中的历史版本][文件名]

image-20201224171304996

将工作区的文件个暂存区的文件进行比较

2.10分支管理

在版本控制过程中,使用多条线控制任务的分支

分支的命名以feature开头 feature_bule

热修复的命名 hot_fix

分支能够同时并行推进多个功能的开发,提高开发效率

如果分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始

2.11分支的具体操作

master是默认分支

#查看分支
git branch -v
#创建分支
git branch hot_fix
#切换分支
git checkout hot_fix
#合并分支的步骤
#第一步:切换到接受修改的分支
git checkout master
#第二步:执行merge命令
git merge hot_fix

#解决冲突
#第一步编辑文件,删除特殊符号
#第二步把文件修改到满意
#第三步 git add[文件名]
#第四部 git commit

0x3. Git基本原理

3.1哈希算法

graph LR
明文-->加密算法-->密文

同一个数保证加密后得到同一个结果

输入数据细微变化会引起Hash巨大的变化

哈希算法不可逆

不管输入的数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定

很多内容也会加密成得到的长度相同32位16进制数

Git底层采用的是SHA-1算法

用途:哈希算法用于校验文件

3.2 Git保存版本的机制

每个版本都会保存当前版本的文件状态

Git把数据看做是小型文件系统的一组快照,每次提交更新时Git都会对当前的全部文件制作一个快照并保存这个快照的索引

为了高效,如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前的存储的文件,所以Git的工作方式可以称为快照流

3.3Git如何管理分支

第一次提交是rootcommit

master与testing都算是指针,指向原来的对象

0x4. idea使用GitHub

4.1创建同步忽略文件

创建忽略规则文件xxxx.ignore(前缀名随便起)

这个文件的存放位置原则上在哪里都可以,

为了便于让~/.gitconfig文件引用,

建议也放在用户家目录下

xxxx.ignore文件内容如下:

idea.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)在.gitconfig文件中引用忽略配置文件(此文件在Windows的家目录中)


[user]
	name = ZhangJY
	email = ZhangJY@atguigu.com
[core]
	excludesfile = C:/Users/ZhangJY/SH0720.ignore
注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”

4.2使用免密登录连接远程仓库

配置免密登录时非常有必要的

首先要明白配置免密登录使用的SSH登录方式,使用RSA

免密登陆地址

#1.进入家目录
cd

89388@DESKTOP-CEH28KV MINGW64 ~

#2.删除.ssh目录
rm -rvf .ssh

removed ‘.ssh/known_hosts’

removed directory ‘.ssh’

#3.生成免密密钥 -C +github账号
ssh-keygen -t rsa -C lijinxinok@163.com
#4.查看公钥并复制公钥
cat id_rsa.pub
#复制公钥,注意有坑,在命令行复制容易出问题
#可以去源文件的地方使用nodpad++打开
#5.添加公钥到github
#如图

 1606477780968

然后将公钥复制进去就可以了

注意push的时候要使用SSH地址哦

免密登陆地址

#6.查看当前所有远程地址别名
git remote -v 

然后将远程登录的SSH复制,添加别名

#7.别名 远程地址
git remote add SparkStreaming http:ssh登录地址

注意有坑,这里时ssh登录地址

接下来就可以测试了

#8.测试一下
git add hello.txt
git push SparkStreaming master

4.3.Git结构

graph TD
历史版本---本地库
临时存储---暂存区
写代码---工作区
工作区--git add-->暂存区
暂存区--git commit-->本地库

4.4Git和代码托管中心

局域网环境

GitLab

外网络环境

GitHub

码云

4.5 本地与内部协作

团队内部协作

加入团队可以增加权限

跨团队协作

4.6从零到一使用IDEA

创建本地库

将一个文件添加到ignore忽视

#将数据添加到ignore
git add to .gitignore

将文件添加exclude

git add to exclude

创建版本

commit
version-0.1 Copy Revison Number

回退版本

回退版本图

然后将版本哈希值粘贴到HEAD地方

创建分支以及合并分支

创建分支

image-20201225163340577

合并分支

image-20201225163935837

如何在idea里解决分支冲突

merge

添加合作伙伴

setting

manage access

0x5. HEXO个人博客

git config --global user.name "godweiyang"
git config --global user.email "792321264@qq.com"

ssh-keygen -t rsa -C "lijinxinok@163.com"

0x6. 配置图床

测试图

加油


文章作者: Jinxin Li
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jinxin Li !
  目录