1 有哪些版本管理软件
- 集中式
svn老旧 - 分布式
Git主流 常用!!
1.1 集中式
我们想要使用任何 版本管理 功能 都必须要连接上服务器 。 一旦服务器出现了问题, 代码记录都没有了。
1.2 分布式
在每一个人的电脑上 都会存在 一个 版本库。我们想要提交记录、查看历史记录、都不需要用服务器。
当我们想要和同事 分享代码的时候,才需要连接一下服务器。
2 git安装
去官网下载安装包
安装成功后,鼠标右键,出现这两个,说明安装成功
安装成功之后,按window+R ,输入cmd,输入git version可查看git的版本,输入where git 可查看git安装在哪里
3 配置个人信息
-
配置邮箱
git config --global user.email xxx@aa.com -
用户名
git config --global user.name xxx -
查看 是否配置成功
git config --global user.email git config --global user.name
4 使用git初始化项目
进入要进行git管理的项目目录,右键git bash here 打开窗口,输入 git init 命令,如果有出现master说明初始化成功
5 查看日志
5.1 常规查看日志
git log
5.2 精简查看日志
git log --oneline
5.3 强大的查看日志
git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
如果进行了版本回退,那么用以上两种方式看对应的版本号会看不到,但是用git reflog 依然能看到版本号
git reflog
6 查看仓库状态
git status
红色表示文件没有被跟踪,需要进行git add . 操作
绿色表示文件还没被提交,需要进行git commit -m "提交信息"
7 提交代码
每当我们的项目完成了一个小功能,都需要提交一次记录。
注意:add 和. 之间有个空格
git add .
git commit -m "提交的信息"
-
使用git add . 会给修改的文件加上跟踪状态(添加对 改动的文件的 监视)--添加到暂存区
-
git commit -m "提交的信息" 会将修改提交到本地计算机的一个缓存区 --添加到本地仓库
提交的信息这里描述一定要非常清楚,表示这次代码修改所完成的项目功能,不能含糊的表示
8 撤销本次的代码修改
git checkout .
前提是修改的代码文件没有提交,没有进行git add . ,git commit -m "提交的信息"的操作
9 将修改回退到任意的版本
通过输入 git log--oneline 可以查看所有的版本号
拷贝一下黄色的ID即可
执行命令进行回退
git reset --hard 版本号
10 远程仓库
其实只是一个公共的,外网下的存放 代码的 服务器
公司 可能会自己搭建一个git 远程仓库 , 也有可能付费买先有的远程仓库的服务
免费的公共远程仓库 大家一起用
国外 github
国内 码云 (码云把全部的仓库 都设置为 私有!! 需要想码云申请公开! )
10.1 远程仓库的使用
使用步骤
-
先注册好账号(码云、github、在企业中)
-
登录好码云后,新建一个远程仓库
- 填写仓库的信息
- 仓库创建成功
- 在你的本地仓库下 打开git 命令工具
git status
- 把 远程仓库的地址 记录在一个 变量上
origin
git remote add origin 仓库地址
-
开始把本地仓库的代码推送到远程仓库上 ---填写你的在码云上的账号和密码
git push -u origin "master"
如果 这一次推送成功 ,下次你只需要 这么敲
git push
- 如果填写密码或者用户名错误 请重试
- 推送代码
10.2 修改远程仓库的地址
git remote set-url origin 你的新的仓库的地址
10.3 克隆远程仓库
下载远程仓库到本地的操作 克隆远程仓库
git clone 地址。。
10.4 拉取更新
在已经克隆好的仓库中,获取到该仓库在远程仓库上 最新的代码。 不需要重新去克隆一次。
只需要 拉取更新
- 进入到 本地仓库目录
- 敲拉取更新
git pull
11 解决代码冲突
如果张三和李四开发的功能代码有交集--在同一个文件下进行开发,这时候张三先提交代码了,李四后提交代码。
那么就会出现以下情况,张三可以把代码提交上去,但是李四用git push时会有错误提示,(思考:因为如果李四能提交上去的话,那么解决代码的冲突合并问题就会变成了是git来帮你解决,但是git会让你自己来解决这个冲突问题,所以我们推代码是推不上去的,解决方法是)
当推送不成功时,会报以下错误。--这就是提示代码有冲突了。
解决的方法是:
1 使用 git pull 拉取最新代码,保证代码是远程仓库的最新代码
图中提示为代码已经拉下来了,但是和之前的代码有冲突,需要手动去改
2 拉取下来的新的代码可能会和自己的开发代码有一个冲突,那么解决冲突的代码就可以了,Vscode中解决代码冲突比较方便,一般是点击accept the both change,接受共同的改变的意思,这样就不会说谁的代码覆盖谁的代码。
3 然后就是用 git add . git commit -m "解决代码冲突", git push 把解决冲突的代码提交上去
4 再进行自己的开发
12 工作目录,暂存区,本地仓库
- 工作目录 就是我们写代码的文件夹
- 暂存区 当我们使用了 命令
git add= 等于我们把文件 存放在了 暂存区中 - 本地仓库 当我们使用了命令
git commit把暂存区内的文件 提交到了 本地仓库中
以上三个区域 其实都是在 同一个文件夹中,只不过 git 根据文件的不同状态 划分出来的 区域而已!
13 分支
分支 可以理解为 就是 复制了一份 代码 可以拥有无数多个分支!
不同分支之间的正确的操作 互不影响
作用让我们更加安全、方便的来开发项目
我们其实一直都是在 主分支 master 下工作
13.1 查看分支
git branch
星号和绿色表示当前在哪个分支上
13.2 开启新分支
git branch 分支名称
13.3 切换分支
git checkout 分支名称
13.4 创建并切换到该分支
git checkout -b 新建的分支名
13.5 合并新的分支
先切换回 主分支
git merge 被合并的分支名称
每完成一个功能,都要进行代码的提交操作。
在切换分支,推代码,或者拉代码,合并分支之前,都要进行代码的提交(git add . git commit -m "提交信息"),这个大方向的操作不能改变
分支操作演示讲解:
1 创建一个文件夹,添加一个text1 文件:(当前分支默认是master分支)
添加完之后要进行 git add . git commit -m "提交信息的操作"
2 创建一个新的分支,命名为qhc,并切换到新的分支qhc,此时新分支的代码文件跟master的代码文件一样
git checkout -b qhc
3 在qhc分支上新建文件,命名为text2,并在qhc分支上进行git add . git commit -m "提交信息" 操作
4 这时使用git checkout master 切换回master分支,是没有text2这个文件的
5 在master分支上使用 git merge qhc表示合并qhc分支的代码,这时候master分支就会出现text2文件了 注意:合并后的分支是不需要进行提交操作的(因为你在分支上已经进行过了,所以顺利合并就不需要了)
13.6 删除新分支
git branch -d 分支名称
13.7 把本地分支 推送到远程仓库
- 先切换回 分支
- 再在分支上 执行命令
git push --set-upstream origin dev
git push --set-upstream 远程仓库别名 本地分支的名称
14 忽略清单
git 默认情况下 会管理 目录下的所有的文件
目录下 有一些文件 不需要被git管理,也不需要上传到 远程仓库中
假设想要git来忽略某些文件 需要用到 忽略清单
比如 vscode 工作区的设置 .vscode不应该被上传到服务器上
- 新建一个忽略清单
.gitignore - 该文件下 可以写注释 以
#开头表示注释
# 忽略 vscode/ 文件夹
.vscode/
# 忽略所有的js文件
*.js
15 SSH
www.yuque.com/docs/share/… 《设置码云 SSH 推送和拉取代码》