[TOC]
git的是一个流行和最常用的代码版本管理工具,它可以很方便的帮我们管理代码(记录代码版本信息,回滚代码版本等)和方便项团队协作。
主要分为两种使用方式
该方式主要是通过 在 shell 窗口中,输入git相关的命令来实现功能
下载好后,直接双击安装即可
在你电脑的空白位置,鼠标右键,如果出现以下提示,表示安装成功
mac直接打开终端 ,即可使用
ctrl + c
、 ctrl + v
,可以通过鼠标右键来操作
clear
表示清空控制台
q
表示退出
git --version
一台电脑,只需要初始化信息一次,告诉git,我们的用户名和邮箱
查看用户名
git config --global user.name
查看邮箱
git config --global user.email
设置用户名
git config --global user.name "xxx"
设置邮箱
git config --global user.email
git主要是通过仓库来管理我们的项目代码
模拟真实工作情况,可以在目录内 新建一些文件,简单编辑
可以随时通过 查看仓库状态,来获知下一步的操作步骤
当你仓库内的文件发生修改时(新增、编辑、删除),都需要添加到暂存区
git add .
此时,再次查看仓库状态
文件存在暂存区还是不安全的,因为文件需要提交到本地仓库,才算是一个完整的操作,后期才可以实现版本回滚
提交到本地仓库有一个关键信息,需要备注这个版本你做了什么事,如 增加了倒计时功能、增加了轮播图效果。一定要有语义,否则不符合公司规范,是个很低级的错误。
git commit -m "首页增加了轮播图"
只有做了提交操作,git仓库中才会存在日志信息。
git log
如果做了版本回退,可以使用
git reflog
git中,存在三个区域和对应的三种文件状态
git add .
后,被编辑的文件就被添加到暂存区中git commit
后,暂存区中的文件就被添加到本地仓库了在git仓库中,文件只有三种状态
远程仓库其实就是本地仓库的一个备份,一般分类两类
实际工作中都会有项目组长提前完成
创建成功
实际工作中,项目组长会直接发给我们一个 远程仓库地址
我们现在自己 复制一下 刚才新建好的远程仓库地址
打开git 窗口,输入命令,进行克隆 (clone)
git clone https://gitee.com/ukSir/web007.git
如果是私密仓库,则会弹出提示 要求填写你远程仓库(码云)的账号和密码。
本地仓库仓库的代码 推送到远程仓库
当我们克隆下来的仓库中的代码进行过编辑后
需要注意的是: 不要出现代码写了一半,没有提交代码就推送更新
git push
此时,刷新码云上的网页,即可看到你所上传的代码。
团队协作过程中,我们想要获取到远程仓库上别人推送上去的新代码,就可以使用 拉取更新
需要注意的是: 不要出现代码写了一半,没有提交代码就拉取更新
git pull
可以看到本地仓库中已经建立了的远程仓库的链接信息
git remote -v
一个本地仓库,可以对应多个远程仓库地址,但是一般都是 1 对 1
git remote add 变量名 远程仓库地址
如果延续上一个步骤,我们直接推送代码,会出现问题
此时要使用上个知识点,添加远程仓库地址
git remote add origin git@gitee.com:ukSir/web008.git
然后指定仓库名称并且指定分支开始推送
git push --set-upstream origin master
--set-upstream
表示将本地分支 master 推送到 远程仓库 master分支上
只要成功推送过一次后,后期又可以直接使用 git push
进行推送了
master
本地仓库中的默认分支
分为两种
git checkout .
git reset .
git reset --hard
可以实现代码时光穿梭,将你的代码还原到某一个版本
需要注意的是: 不要出现代码写了一半,就进行代码的回滚
先查看日志,获取版本ID
git log
执行回滚
git reset --hard 版本ID
git在运作的时候都是基于分支的,分支可以理解为就是项目代码的一个备份
我们可以建立多个分支,分支的名称可以自定义。如
在git中,常见的分支功能主要有
查看分支
git branch
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
创建并切换分支
git checkout -b 分支名称
合并分支
把 dev分支合并到 master分支上 需要注意的是: 不要出现代码写了一半,就进行分支的合并
先切换回主分支
git checkout master
然后再合并分支
git merge dev
删除分支
git branch -d 分支名称
克隆指定远程仓库的某个分支
git clone -b 远程仓库上的分支名称 远程仓库地址
克隆远程分支到本地某个分支上
git clone -b 远程仓库上的分支名称 远程仓库地址
将本地某个分支推送到远程仓库对应的分支上
在本地仓库中先切换分支
开始推送
git push --set-upstream 本地仓库中记录的远程仓库的别名 分支名称
GitFlow、GitHubFlow以及GitLabFlow
Git工作流中常见的三种分支策略:GitFlow、GitHubFlow以及GitLabFlow
冲突是一种现象:在git中进行文件的更新中或者合并中,如果发现同一时刻,同一位置进行了修改,那么就会出现冲突
一般来说,出现冲突的场景主要有以下两种:
如果两个分支,同一时刻修改了同一文件的同一位置,那么在做分支合并时,就会出现冲突。
手动修改要调整的代码,然后执行 git add
、 git commit
、 即可
手动修改要调整的代码,然后执行 git add
、 git commit
、 即可
企业开发中,我们提交commit的日志 格式也是有要求的,目前一般是参考 angular推出的规范。
git commit -m [type](scope):备注信息
用来描述本次commit主要的用途
类型 | 说明 |
---|---|
feature 简写: feat | 开发新功能 |
fix | 修复 bug |
docs | 仅修改了文档,如readme.md |
style | 仅仅是对格式进行修改,如逗号、缩进、空格等。不改变代码逻辑。 |
refactor | 代码重构,没有新增功能或修复bug |
perf | 优化相关,如提升性能、用户体验等。 |
test | 测试用例,包括单元测试、集成测试。 |
chore | 改变构建流程、或者增加依赖库、工具等。 |
revert | 版本回滚 |
示例:
git commit -m feat:实现登录
用于说明 本次commit 影响的范围,比如: views, component, utils, test...
git commit -m feat(index.html):实现登录
在git仓库中,可能存在一些文件不想要被git所管理,不需要进行团队共享。此时可以在忽略清单中添加忽略。
忽略清单的文件夹名是固定的,必须是 .gitignore, 然后在里面添加要被忽略掉文件即可
需要注意的是,一般情况下,在初始化git仓库的时候,忽略清单也应该同时创建
.gitignore
## 忽略 1.txt 文本
1.txt
## 忽略后缀名为 mp4 的文件
*.mp4
## 忽略文件夹
vscode/
如果你的仓库是克隆远程仓库的,则不需要进行这一步操作
如果你的仓库是克隆远程仓库的,则不需要进行这一步操作
后期再推送
一些电脑系统在使用码云的时候,没有自动记录密码功能,就可能会出现频繁要求添加账号和密码的问题。 这个时候可以通过设置 ssh 来解决。