Git学习笔记

1. Git

1.1. Git概述

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

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

Git工作机制
Git学习笔记_第1张图片
工作区:存放代码的本地磁盘目录(代码能删)
暂存区:工作区代码添加到暂存区(代码能删)
本地库:暂存区代码提交到本地库(生成历史版本了,代码删不掉了,除非不push到远程库)
远程库:本地库代码推送到远程库(生成历史版本了,代码删不掉了,除非删库跑路)

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

Git远程库如下:

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

1.2. Git安装

Git安装视频

1.3. Git命令

1.3.1. 设置用户签名

Git学习笔记_第2张图片
上图中的用户签名存储在【C:\Users\21473.gitconfig】

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

1.3.2. 初始化本地库

新建并进入空目录【D:\ProgramFiles\GitSpace\GitDemo】,右键【Git Bash Here】,输入【git init】,生成【.git】目录
Git学习笔记_第3张图片

1.3.3. 查看本地库状态

首次查看(工作区没有文件)
新增文件(hello.txt)
再次查看(检测到未追踪的文件)
Git学习笔记_第4张图片

1.3.4. 添加暂存区

将工作区的文件添加到暂存区
查看状态(检测到暂存区有新文件)
Git学习笔记_第5张图片
使用【git rm --cached hello.txt】只是将暂存区的hello.txt删除,工作区的hello.txt还在

1.3.5. 提交本地库

将暂存区的文件提交到本地库
查看状态(没有文件需要提交)
Git学习笔记_第6张图片
Git学习笔记_第7张图片

1.3.6. 修改文件

查看状态(检测到工作区有文件被修改)
将修改的文件再次添加到暂存区
查看状态(工作区的修改添加到了暂存区)
Git学习笔记_第8张图片

1.3.7. 历史版本

查看历史版本
版本穿梭
Git学习笔记_第9张图片
指针head指向分支master,分支master指向版本83375ef

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

1.4. Git分支

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

1.4.1. 查看分支

在这里插入图片描述

1.4.2. 创建分支

Git学习笔记_第10张图片

1.4.3. 切换分支

Git学习笔记_第11张图片

1.4.4. 修改分支

Git学习笔记_第12张图片

1.4.5. 合并分支

Git学习笔记_第13张图片

1.4.6. 合并冲突及解决

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

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

1.5. 推送本地库到远程库

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

查看本地别名(没有)
添加本地别名(GitDemo)
查看本地别名(GitDemo*2)
切换到分支master
推送本地库到远程库【git push GitDemo master】,注意带分支,第一次要登录
Git学习笔记_第18张图片

1.6. 拉取远程库到本地库

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

拉取远程库到本地库【git pull GitDemo master】,注意带分支
Git学习笔记_第19张图片

1.7. 克隆远程库到本地库

clone作了3件事:1. 拉取代码;2. 初始化本地库;3. 创建别名为origin
Git学习笔记_第20张图片

1.8. 团队协作

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

1.9. ssh免密登录

【-t rsa】设置非对称加密算法
敲3次空格
Git学习笔记_第21张图片
上图的结果如下,产生公钥和私钥
Git学习笔记_第22张图片
打开公钥文件,复制公钥
Git学习笔记_第23张图片
将公钥添加到GitHub
Git学习笔记_第24张图片
使用ssh方式拉取远程库到本地库
这里忘加分支master了,但远程库只有分支master,故不影响,但建议加上
Git学习笔记_第25张图片
使用ssh方式推送本地库到远程库
Git学习笔记_第26张图片

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

你可能感兴趣的:(Git,git,github,学习)