1.git的基本使用
在git官网中安装软件包 安装不需要有任何操作,点击next即可,在最后时候取消最后的勾选
clear 清空展示内容相当于cls
git常用命令
1.安装完成必须配置用户信息 --global全局配置
git config --global user.name 用户名 用户名随便起
git config --global user.email 邮箱
#查看所有的全局配置项命令
git config --list --global
#查看指定的全局配置项
git config user.name 只查看用户名
git config user.email 只查看邮箱
2.获取帮助信息 git help 就是查看命令的用法
#在浏览器查看关于config用法
git help config
#在终端查看config的用法
git config -h
3.获取git仓库的方式
git clone 地址.git 克隆别人的代码
4.将文件目录创建为git仓库
git init
5.git的三个状态
未修改(unmodified) 就是没有任何修改 工作区中文件的内容和git创库中文件的内容保持一致
已修改(modified) 工作区文件的内容和git仓库中文件的内容不一致 就是工作区文件内容修改
已暂存(staged) 工作区中被修改文件放到暂存区,准备将修改后的文件保存到git仓库中
6.git工作区中文件的4中状态
未跟踪(untracked)文件没有被git所管理
# 文件被git所管理
未修改(unmodified)
已修改(modified)
已暂存(staged)
7.检查文件的状态 有没有被git所管理
git status
8.检查文件的状态 报告内容繁琐 使用下面命令内容简单
git status -s
git status --short --short简写s
报告内容红色双问号 表示文件未跟踪没有被git管理
报告内容绿色大写A 表示新文件放到暂存区交给git管理了
将git管理文件里面内容修改,git status报告内容红色modified表示内容修改了,使用git add . 表示将修改内容添加到暂存区,git status报告内容绿色modified表示修改内容添加到暂存区
9.跟踪文件(就是将未跟踪文件也就是新创建文件放到暂存区) 就是把文件交给git管理
#将所有文件放到暂存区 将未跟踪的文件放到暂存区交给git管理
git add .
#将单个文件放到暂存区 将单个文件(新建文件)放到暂存区交给git管理
git add 文件名
10.提交到本地仓库
git commit -m '日志信息' 提交内容比如提交了什么代码什么功能
-
将暂存好的文件 里面内容进行修改 git add 三个作用
# 跟踪文件 将新的文件放到暂存区 把文件交给git管理 # 将git管理文件里面内容进行修改 使用git add 放到暂存区 # 将有冲突的文件标记为已解决状态
12.把暂存区文件移出来 就是通过git add 命令放到暂存区文件 使用下面命令将单个文件/多个文件移出来 变成未跟踪没有被git管理
git reset HEAD 文件名 # 将所有暂存区文件移出来 变成未跟踪没有被git管理 git reset HEAD . 注意: 只要文件提交到本地仓库不会被移出来
13.跳过暂存区 直接跳过git add
git commit -a -m '日志信息'
14.删除文件
-
从git仓库和工作区中同时删除对应文件
git rm -f 文件名
-
只删除git仓库指定文件,保留工作区文件
git rm --cached 文件名
15.忽略文件
取文件名为.gitignore文件 里面放一些文件 这些文件就是不用放到git管理的文件
# 以#开头的是注释 # 以 /结尾的是目录 # 以 /开头防止递归 # 以 !开头表示取反 可以使用glob模式进行文件和文件夹的匹配(就是简化了正则表达式)
glob
* 匹配零个或多个任意字符 [abc] 匹配任何一个列在方括号中的字符 ? 只匹配一个任意字符 在方括号中使用短横线分隔两个字符 表示所有在这两个字符范围内的都可以匹配(比如[0-9]表示所有0到9的数字) 两个 ** 表匹配任意中间目录(比如a/**/z可以匹配a/z、a/b/z)
- 查看提交历史记录
q 退出历史记录 #按时间先后顺序查看所有提交历史记录 git log #只展示最新两条历史记录 git log -2 数字可以随意写 写多少有多少提交记录 # 在一行上展示最近两条提交历史记录 git log -2 --pretty=oneline #在一行上展示最近两条提交历史记录 并自定义输出格式 # %h提交简写哈希值 %an作者名字 %ar作者修订日期,按多久以前的方式显示 %s提交说明 git log -2 --pretty=format:"%h | %an |%ar |%s"
18.GitHub仓库的两种访问方式
https :零配置; 每次访问仓库时,需要重复输入GitHub账号和密码才能访问成功
ssh:需要进行额外的配置 但是配置成功后,每次访问仓库时 不需要重复输入GitHub账号和密码 实际开发中使用ssh方式访问远程仓库
19.生成SSH key
作用 实现本地仓库 和 GitHub之间免登录的加密数据传输
好处 免登录身份认证 数据加密传输
SSH key 由两部分组成
-
id_rsa(私钥文件,存放于客户端的电脑中即可)
-
id_rsa.pub(公钥文件,需要配置到GitHub中)
在终端输入这样命令 ssh-keygen -t rsa -b 4096 -C “自己的邮箱” 在C盘user下面用户文件有.ssh目录 我们使用id_rsa.pub 里面公钥配置到GitHub/gitee中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fBeTYDBk-1671003600594)(D:\typora笔记\Git\git资料图片\GitHub配置sshkey.jpg)]
-
# 检测GitHub的ssh key 是否配置成功
ssh -T git@github.com
2.分支
-
master :主分支 作用:用来保存和记录整个项目已完成的功能代码
注意 :企业项目开发中,不允许在master主分支修改代码,会导致整个项目崩溃
-
功能分支: 就是开发新功能需要创建一个分支
-
查看分支列表
git branch
-
创建新分支
git branch 分支名称
-
切换分支
git checkout 分支名称
-
创建分支并切换
git checkout -b 分支名称 创建分支基于当前分支创建分支代码是一样的
-
合并分支
git checkout devloop 切换开发分支 # 将login分支代码合并到devloop开发分支 git merge login
-
删除本地分支
git branch -d 分支名 注意: 删除分支不能处于当前删除分支上
9.分支合并产生冲突
两个不同分支, 对同一个文件进行了不同修改,git没法合并它们
企业中 两个开发人员 文件名一致 合并就会造成冲突 就是两个文件名一样 就是对同一个文件进行了不同修改 导致冲突
造成冲突 文件里面就是这样结构
<<<<<<<<< HEAD (主分支) ========= >>>>>>>>> login (开发分支)
自己制造冲突
1.在master分支上创建一个分支并切换 git checkout -b login 2.修改某个文件1.html git add . git commit -m '日志信息' 3.切换主分支 git checkout master 4. 在主分支上修改某个文件1.html git add . git commit -m '日志信息' git merge login 合并分支 将分支login合并主分支 然后就会出现报错 打开冲突文件 里面这样结构 采用当前更改 | 采用传入更改 | 保留双方更改 | 比较更改 <<<<<<<< HEAD (当前更改 主分支更改) ======== >>>>>>>> login (传入更改 分支更改)
如何解决
采用当前更改(只保留主分支更改,分支更改删除) | 采用传入更改(只保留分支更改,主分支更改删除) | 保留双方更改(主分支和分支都保留) | 比较更改 注意:vscode都是英文 但是顺序一样 # 一般我们只保留主分支更改 <<<<<<<< HEAD (当前更改 主分支更改) ======== >>>>>>>> login (传入更改 分支更改) 1. 打开冲突文件,进行手动更改只保留主分支更改 2. 更改完成之后 git add . git commit -m '日志信息'
10.将本地创建的分支推送到远程仓库
第一次推送本地分支到远程仓库
git push -u origin login origin 远程仓库的别名 login 本地分支的名称 注意 第一次推送分支需要带-u参数 此后可以直接使用git push推送代码到远程分支
11.查看远程分支列表
git remote show origin
12.跟踪分支: 本地分支删除了 从远程仓库分支下载到本地仓库中 简单理解就是 本地没有这个分支 远程仓库有这个分支 直接将远程仓库分支下载到本地
git checkout 远程仓库分支名 可以使用git branch -d 分支名称 删除分支名称 使用 git checkout 远程仓库分支下载到本地
13.拉取远程分支代码
git pull 仓库 仓库就是拉取哪个仓库代码
14.删除远程分支 了解 一般不会删除远程仓库分支
# 删除远程仓库指定远程分支 git push origin --delete 远程分支名称 git push origin --delete login
这个分支 远程仓库有这个分支 直接将远程仓库分支下载到本地
git checkout 远程仓库分支名
可以使用git branch -d 分支名称 删除分支名称
使用 git checkout 远程仓库分支下载到本地
13.拉取远程分支代码
git pull 仓库 仓库就是拉取哪个仓库代码
14.删除远程分支 了解 一般不会删除远程仓库分支
# 删除远程仓库指定远程分支
git push origin --delete 远程分支名称
git push origin --delete login