尚硅谷GIT

尚硅谷GIT

Git概述

简介

版本控制工具
  • 集中式版本控制工具,如CVS、SVN等,每个人操作的都是实时最新的文件版本
  • 分布式版本控制工具,如Git,客户的操作对象是镜像的代码库
Git工作机制
  1. 远程库(远程代码仓库)
  2. 本地库:存放历史版本
  3. 暂存区:临时存储
  4. 工作区:写代码

Git安装

git官网直接下载即可,我之前搭建个人博客的时候已经下载过git了,可以用以下方法查看是否安装成功

Win + R → 输入 appwiz.cpl →查看已安装程序列表,检查是否下载过 Git及其版本号】

Git基础命令

在git中,Linux命令也是通用的

  • 初始化常用git命令如下:
1
2
3
4
5
6
7
8
git config --global user.name 用户名  设置用户签名
git config --global user.email 邮箱 设置用户签名
git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加到暂存区
git commit -m"日志信息" 文件名 提交到本地库
git reflog 查看历史记录
git reset --hard 版本号 版本穿梭

要先设置用户名、邮箱以及代理端口

image-20250716142858386

git库的文件自始至终只有一个,其本质上还是指针,而非多个副本同时存在。当对一个文件名创建多个历史版本时,当前指针默认指向最新的版本

git reset --hard 版本号可以将指针指向特定的版本号

git reflog 可以查看各个历史版本的版本号

git log 可以查看详细的日志信息

  • 基础vim命令
1
2
3
4
5
Esc 进入普通模式
yy为复制,p是粘贴
保存与退出:普通模式下:wq
替换模式(REPLACE) 按 Esc 退出,再按 i 进入插入模式
方向键无效 改用 h, j, k, l

GIt分支

分支可以理解成是一个“副本”,初始分支是master

  • 基本语法及命令
1
2
3
4
git branch -v  查看分支
git branch hot-fix 创建分支(其中hot-fix是分支名)
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上

在没有手动创建分支之前,默认只有master一个分支。可以用git branch hot-fix来创建分支

1
2
3
4
5
6
7
8
9
10
11
12
示例如下:
30323@K-OMEN-0518 MINGW64 /d/git-space/git-demo (master)
$ git branch -v
* master 077d6aa second commit //此时只有master一个初始分支

30323@K-OMEN-0518 MINGW64 /d/git-space/git-demo (master)
$ git branch hot-fix //创建分支hot-fix

30323@K-OMEN-0518 MINGW64 /d/git-space/git-demo (master)
$ git branch -v
hot-fix 077d6aa second commit //此时有两个分支moster和hot-fix
* master 077d6aa second commit //"second commit"是推送库时对日志的注解

GitHub操作

创建远程仓库及别名

在GitHub主页创建远程仓库,然后可以选择两种不同协议的链接:https或者ssh

1
https://github.com/MooSeQAQ/git-demo.git

image-20250717142806555

  • 创建远程地址的别名,便于push和pull
1
2
git remote add 别名 远程地址
例如 git remote add git-demo https://github.com/MooSeQAQ/git-demo.git
  • 查看别名
1
git remote -v

推送本地分支至远程仓库

  • push命令:git push 远程库的别名 分支名
1
git push git-demo master

推送成功后GitHub上的远程仓库就会出现我们push的分支

image-20250717150508120

拉取远程仓库到本地库

  • pull命令:git pull 远程库的别名 分支名
1
git pull git-demo master

image-20250717172125780

克隆远程仓库到本地库

创建一个新的空文件夹,然后克隆

  • clone命令:git clone 链接
1
git clone https://github.com/MooSeQAQ/git-demo.git

clone会同时完成以下操作:

  1. 拉取代码
  2. 初始化本地仓库
  3. 创建别名

队内外协作

团队内协作

团队内协作项目时,需要在GitHub中将其他成员加入管理权限,才能进行push操作

跨团队协作

如果要对其他团队的代码进行修改,我们可以先拉取库到本地,修改完后push到自己的GitHub上,再通过Pull request反馈给团队

SSH免密登录

在使用SSH链接之前,首先要有公钥

C:\Users\30323目录下bash here,生成ssh密钥目录,运行命令:

1
2
ssh-keygen -t rsa -C "your_email@example.com"
连续三次回车

IDEA集成Git

配置GIt忽略文件

为了更好的用git管理IDEA,我们需要配置Git忽略文件,过滤IDEA原有的一些系统文件(忽略掉可以屏蔽IDE工具之间的差异),操作如下:

  • 在用户家目录下C:\Users\30323创建忽略规则文件xxx.ignore(如git.ignore)
  • 可根据具体需要过滤系统文件,ignore模板如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 操作系统生成的文件
.DS_Store # macOS 系统文件
Thumbs.db # Windows 缩略图缓存
desktop.ini # Windows 配置文件

# 编辑器/IDE 文件
.idea/ # JetBrains IDE (IntelliJ, PyCharm等)
.vscode/ # VS Code 配置
*.suo # Visual Studio 用户选项
*.swp # Vim 临时文件
~$* # Office 临时文件

# 依赖目录
node_modules/ # Node.js
vendor/ # Composer (PHP)
__pycache__/ # Python 缓存
*.py[cod] # Python 编译文件
bin/ # 二进制输出目录
build/ # 构建工具生成目录
dist/ # 打包输出目录

# 日志和数据库文件
*.log # 日志文件
*.sqlite # SQLite 数据库
*.db # 通用数据库文件

# 环境文件
.env # 环境变量(包含敏感信息!)
*.env.local # 本地覆盖的环境文件
secrets.yml # 配置文件

# 测试相关
coverage/ # 测试覆盖率报告
*.junit # 测试报告

# 系统文件
*.tmp # 临时文件
*.bak # 备份文件
*.orig # 合并冲突文件
  • 在gitconfig文件(家目录中)引用忽略配置文件
1
2
3
4
添加内容如下:
[core]
excludesfile = C:/Users/30323/git.ignore
注意要改成正斜杠/