Git学习笔记

1. Git

1.1. Git概述

Git是一个免费的、开源的分布式版本控制系统

从个人开发过渡到团队协作,需要版本控制(毕设论文版本的笑话)

Git工作机制
在这里插入图片描述
工作区:存放代码的本地磁盘目录(代码能删)
暂存区:工作区代码添加到暂存区(代码能删)
本地库:暂存区代码提交到本地库(生成历史版本了,代码删不掉了,除非不push到远程库)
远程库:本地库代码推送到远程库(生成历史版本了,代码删不掉了,除非删库跑路)

代码托管中心是基于网络服务器的远程代码仓库,i.e.远程库

Git远程库如下:

  • 互联网
    • GitHub(外网)
    • Gitee码云(国内网站)
  • 局域网
    • GitLab

1.2. Git安装

Git安装视频

1.3. Git命令

1.3.1. 设置用户签名

在这里插入图片描述
上图中的用户签名存储在【C:\Users\21473.gitconfig】

Git首次安装必须设置用户签名,否则无法提交代码,用户签名仅用于区分代码的提交者

1.3.2. 初始化本地库

新建并进入空目录【D:\ProgramFiles\GitSpace\GitDemo】,右键【Git Bash Here】,输入【git init】,生成【.git】目录
在这里插入图片描述

1.3.3. 查看本地库状态

首次查看(工作区没有文件)
新增文件(hello.txt)
再次查看(检测到未追踪的文件)
在这里插入图片描述

1.3.4. 添加暂存区

将工作区的文件添加到暂存区
查看状态(检测到暂存区有新文件)
在这里插入图片描述
使用【git rm --cached hello.txt】只是将暂存区的hello.txt删除,工作区的hello.txt还在

1.3.5. 提交本地库

将暂存区的文件提交到本地库
查看状态(没有文件需要提交)
在这里插入图片描述
在这里插入图片描述

1.3.6. 修改文件

查看状态(检测到工作区有文件被修改)
将修改的文件再次添加到暂存区
查看状态(工作区的修改添加到了暂存区)
在这里插入图片描述

1.3.7. 历史版本

查看历史版本
版本穿梭
在这里插入图片描述
指针head指向分支master,分支master指向版本83375ef

Git切换版本的底层就是移动指针head

1.4. Git分支

master和hot-fix都是指向具体版本的指针,当前的分支由head决定,所以创建分支的本质就是创建具体版本的副本及指向该副本的指针

1.4.1. 查看分支

在这里插入图片描述

1.4.2. 创建分支

在这里插入图片描述

1.4.3. 切换分支

在这里插入图片描述

1.4.4. 修改分支

在这里插入图片描述

1.4.5. 合并分支

在这里插入图片描述

1.4.6. 合并冲突及解决

合并分支时,两个分支在同一文件同一位置有两套不同的修改,Git无法决定合并方式,必须人为决定新代码内容

分支master在hello.txt中第4行处添加字符串master merge conflict test,并add和commit
在这里插入图片描述
分支hot-fix在hello.txt中第4行处添加字符串hot-fix merge conflict test,并add和commit
在这里插入图片描述
分支master合并分支hot-fix,自动合并失败,进入MERGING状态,人工vim hello.txt决定新代码内容,再add和commit,注意此时commit不能加文件名,自动合并成功,退出MERGING状态
在这里插入图片描述
注意,合并后只会修改master内容,hot-fix不变
在这里插入图片描述

1.5. 推送本地库到远程库

在GitHub新建空仓库GitDemo,复制HTTPS【https://github.com/itsdandy163/GitDemo.git】

查看本地别名(没有)
添加本地别名(GitDemo)
查看本地别名(GitDemo*2)
切换到分支master
推送本地库到远程库【git push GitDemo master】,注意带分支,第一次要登录
在这里插入图片描述

1.6. 拉取远程库到本地库

在GitHub修改了hello.txt,在末行添加了字符串pull test

拉取远程库到本地库【git pull GitDemo master】,注意带分支
在这里插入图片描述

1.7. 克隆远程库到本地库

clone作了3件事:1. 拉取代码;2. 初始化本地库;3. 创建别名为origin
在这里插入图片描述

1.8. 团队协作

团队内协作视频教程
跨团队协作视频教程

1.9. ssh免密登录

【-t rsa】设置非对称加密算法
敲3次空格
在这里插入图片描述
上图的结果如下,产生公钥和私钥
在这里插入图片描述
打开公钥文件,复制公钥
在这里插入图片描述
将公钥添加到GitHub
在这里插入图片描述
使用ssh方式拉取远程库到本地库
这里忘加分支master了,但远程库只有分支master,故不影响,但建议加上
在这里插入图片描述
使用ssh方式推送本地库到远程库
在这里插入图片描述

1.10. Idea集成Git

1.10.1. 配置Git忽略文件

Idea项目中的【.idea或.iml等】与Git无关,故配置忽略文件来忽略这些文件,以屏蔽IDE工具之间的差异

创建【C:\Users\21473\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

hs_err_pid*

.classpath
.project
.settings
target
.idea
*.iml

在【C:\Users\21473.gitconfig】中添加如下代码,注意将win的\换成/

[core]
	excludesfile = C:/Users/21473/git.ignore

1.10.2. Idea定位Git程序

Idea定位Git程序视频教程

设置->版本->Git

1.10.3. Idea项目git init

Idea项目git init视频教程

VCS->Create Git Repository

然后git_test就有.git了,pom.xml也变红了

后面看视频吧

2. GitHub

全球最大同性交友网站,技术宅男的天堂,新世界的大门

3. Gitee码云

码云创建远程库
Idea集成Gitee码云
码云连接GitHub 进行代码的复制和迁移

4. GitLab

基于局域网的代码托管中心
GitLab服务器的搭建和部署
Idea集成GitLab

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itsdandy

感谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值