概念理解
1 简单描述 🔶
----------------------------------------------------------------------------------
1 分布式版本控制系统 -> git -> 用于保存管理我们的项目版本
2 可以把我们项目开发的代码, 放在一个仓库中, 便于项目成员之间的分工合作
3 定位 -> 对前端而言, 简单理解 -> 就是存放我们项目代码的地方
4 git 工具优缺点
1 优点
1 每个人的电脑上都可以是一个完整的版本库, 适合分布式开发
2 公共服务器压力和数据量都不会太大, 速度快灵活
3 可以离线工作
2 缺点
1 操作复杂
2 代码保密性较差 (因为是上传到别人的服务器上存储的)
5 SVN 的优缺点
1 优点: 操作简单 / 代码保密性较强
2 缺点: 需要单独搭建SVN服务器 / 不能离线工作
----------------------------------------------------------------------------------
2 核心内容 🔶
----------------------------------------------------------------------------------
1 存储项目代码位置分为 -> "本地仓库" 和 "远程仓库"
2 本地仓库: 是我们开发项目时的本地环境, 分为 -> 工作区 + 暂存区 + 本地仓库 (.git)
3 远程仓库: 是项目组人员共享代码的位置, 就是把本地写好的项目结构放在"服务端", 大家一起去开发 (负责各自的模块)
4 重点掌握: git 工具的操作, 主要是通过命令行来实现的, 必须背下来
5 核心点 -> 如何从"远程仓库"拿到想要的代码到"本地" + 如何从"本地"把代码提交到"远程仓库"
----------------------------------------------------------------------------------
3 使用流程 🔶
----------------------------------------------------------------------------------
1 下载工具 git
2 git 工具基础配置
3 初始化本地仓库
4 本地开发 - 相关知识
5 提交代码到远程仓库 + 拉去代码到本地
6 非 CLI (脚手架) 项目上传时, 注意配置自己的忽略文件
----------------------------------------------------------------------------------
4 相关知识 🔶
--------------------------------------------------------------------------------------
1 版本回退问题
2 远程仓库的可视化操作
3 忽略文件配置规则
4 配置 SSH
--------------------------------------------------------------------------------------
5 工作流程
-----------------------------------------------------------------------------------------
1 拿到项目文件 -> 更新我们模块的代码 -> 提交到本地仓库 -> push
2 更新我们负责的模块: 创建分支 --> 写代码 --> 合并分支 --> 提交到本地仓库 "本次修改了哪些内容"
3 push 到远程仓库 (注意查看是否存在版本冲突)
-----------------------------------------------------------------------------------------
1 一个本地仓库可以关联多个远程仓库
2 本地代码上传到远程仓库时, 习惯先执行 git pull, 防止直接覆盖别人的代码
1 git 工具基础配置
1 安装: https://git-scm.com/
2 配置用户信息:
1 git config --global user.name 'zhangwei'
2 git config --global user.email '635031145@qq.com'
3 git config --global user.name
4 git config --global user.email
5 git config --list
2 初始化本地仓库
新建文件夹 hh -> 命令行以该文件夹为根目录 -> 初始化为本地仓库 (git init)
注意事项:
1 上传远程仓库时, 传的就是 hh 这个文件夹
2 我们拉取这个项目时, 拉下来的也是 hh 这个文件夹
3 此时项目文件 hh, 内部有个隐藏文件 .git, 就是存放我们版本信息的"本地仓库"了
3 本地开发 - 相关知识
1 提交工作区代码到本地仓库 🔶
------------------------------------------------------------------------------------
1 git add .
2 git commit -m '注释文本'
3 git status
4 git diff 文件名
5 相关说明:
1 注释文本 -> 描述了这次提交你做了哪些改动, 过实现了哪些功能的一个, 简短描述
2 注释文本 -> 当你提交到远程仓库时, 会展示给其他项目人员看到
3 每次提交都会形成一个新的版本库, 所以建议通过分支开发, 功能完善好再一次性提交
4 git status -> 发现红色文件 ( 新建或改动的文件, 没有加入到暂存区 ) -> 需要重新加入再提交
5 git status -> "发现绿色文件" ( 新建或改动的文件, 已经添加在暂存区 ) -> 可直接提交
------------------------------------------------------------------------------------
2 本地分支操作 🔶
------------------------------------------------------------------------------------
1 代码范式 ↓
1 查看 -> git branch
2 查看 -> git branch -a
3 创建 -> git branch hh
4 创建并切换 -> git checkout -b hh
5 切换 -> git checkout hh
6 合并 -> git merge hh
7 删除 -> git branch -d hh
2 分支操作理解 ↓
1 创建分支 -> 理解为拷贝了一份当前分支的项目文件, 放在了新的分支上
2 切换分支 -> 也就是切换多个项目文件的备份
3 合并分支 -> 就是把我们瞎搞分支, 测试完善的代码, 直接去覆盖开发分支的内容, 形成一个新的版本, 提交上去
3 分支操作思路 ↓
1 通常会在, 开发分支 (dev) 中提交代码到, 远程对应的 dev 分支
2 通常会用 dev 来表示开发分支; 远程分支和本地分支, 完全是俩回事
3 然后由多方面决定, 再把某个版本的, 开发分支上的代码, 提交到主分支 (master) 上
4 分支常规流程 ↓
1 创建并切换到 (开发分支 dev) -> 创建并切换到 (瞎搞分支) -> 编辑代码
2 编辑代码完成 (注意有提交) -> 切换到 dev 分支 -> 合并分支
3 然后把新的版本 push 到远程仓库中 "注意要先 pull, 防止覆盖别人的代码, 以及解决版本冲突"
5 注意事项 ↓
1 分支切换之前, 要先把工作区的代码, 提交到本地仓库
2 分支切换前, 若没有提交本地 -> 1 再切回来就没有之前编写的代码了 -> 2 会自动把代码合并到目标分支
3 要保证当前分支, 工作区与本地仓库代码同步, 才可以进行合并分支的操作
4 pull 时发现版本冲突 -> 解决冲突 -> 工作区代码提交到本地仓库 "注释文本 -- 解决冲突" -> push 提交
5 push 前一定要 pull
6 主分支上的工作区与本地仓库没有同步时, 是不允许切换分支的
7 在瞎搞分支上的, 提交本地仓库操作记录, 也会被合并到目标分支上的, 且目标分支不需要再次提交
4 提交和拉取代码
1 基础设置 ↓
----------------------------------------------------------------------------------------------------
1 git remote add hh "仓库地址"
2 git remote rm hh
3 git remote -v
----------------------------------------------------------------------------------------------------
2 提交代码到远程仓库 ↓
----------------------------------------------------------------------------------------------------
1 git push -u hh master
2 git push
3 git push hh dev
----------------------------------------------------------------------------------------------------
3 拉取远程仓库的项目到本地工作区 ↓
----------------------------------------------------------------------------------------------------
1 git clone "仓库地址"
2 git pull hh dev
3 直接下载项目压缩包的方式
----------------------------------------------------------------------------------------------------
4 注意事项 ↓
----------------------------------------------------------------------------------------------------
1 如果是通过 git clone得到的项目, 那么本地仓库已经"默认"和拉取代码的远程仓库"关联"了, 并用origin 指代该远程仓库
2 一个本地仓库是可以并联多个远程仓库的
3 git pull hh dev -> 会把远程仓库, 最新版本代码拉取到本地; 且会直接改变我们工作区的内容
4 git push hh kk -> 如果远程仓库没有 kk 分支, 默认"创建远程分支 kk"
5 本地仓库有自己的分支, 远程仓库也有自己的分支, 他们是不一样且没有关联的
6 git fetch -> 跟 pull 的作用一样, 它不会自动合并
----------------------------------------------------------------------------------------------------
6 版本回退问题
1 相关指令 ↓
------------------------------------------------------------------------------------------------
1 git log
2 git reflog
3 git reset --hard HEAD^
4 git reset --hard HEAD^^
5 git reset --hard 191e0c7
------------------------------------------------------------------------------------------------
6 相关理解 ↓
------------------------------------------------------------------------------------------------
1 本地仓库帮我们把, 每次提交的项目代码都保存下来了, 我们可以通过版本回退, 拿到我们之前版本的项目代码
2 "注意" -> 版本回退的时候, 会直接改变工作区代码, 如有需要回退前要, 先把工作区的代码提交到本地
3 "瞎搞分支"也有属于自己的版本号, 不过一般也不会轻易的弄, 开发以及组分支上的版本回退
------------------------------------------------------------------------------------------------
7 忽略文件规则 -> .gitignore
1 # hhh -- 注释
2 hh.js -- 忽略该文件, 每个文件占一行
3 hh/ -- 忽略该目录下的所有文件, 每个目录占一行
4 *.txt -- 忽略所有以 txt结尾的文件
5 hh
6 hh/hh* -- 忽略hh目录下的所有 -- 以hh开头的文件
8 配置 SSH
1 简单描述, 就是使用 SSH 地址, 上传和拉取代码
2 首先检查电脑是否曾经生成过私钥 ↓
命令行: cd ~/.ssh
如果已经生成过私钥, 想重弄一个, 在回车的时候, (y/n) --> y
2 生成私钥 ↓
ssh-keygen -t rsa -C "635031145@qq.com"
执行成功后 -> 会在 ~/.ssh 路径下生成两个文件 -> id_rsa (私钥文件) / id_rsa.pub (公钥文件)
我电脑的路径 -> c/Users/DELL/.ssh/
3 配置公钥 ↓
开始 -> 复制公钥内容 -> github 头像下拉菜单
-> Settings -> 左边选 SSH and GPG keys -> New SSH key -> Title: hh1; key: 粘贴公钥内容 -> 添加
2 现在就可以使用 SSH 地址去, 关联本地仓库了, 或者拉取代码了
9 其他相关知识
1 中添加合作者: git hub
1 小明创建了一个远程仓库 -> 我要和他一起开发 -> 我能拿到当前项目 -> 但是不能提交代码
2 当前项目下 -> Settings -> Manage access -> 邀请协作者 -> 对方会收到邮件 -> 同意之后, 就可以一起开发了
2 常规命令行操作
cd d:
cd 路径
cd ..
mkdir
pwd
touch xx
vi xx
rm
ls
clear
:wq
问题描述
1 假设我有俩个账号, 一个是自己的 github, 一个是公司 gitlab
2 我第一次使用 git 提交代码的时候, 需要输入自己的 github 账号和密码
3 然后我就可以提交代码到我的, 远程 github 仓库了,
4 但是现在公司为我, 注册了一个 gitlab 账号, 我的 gitlab 有提交的权限, 但是我的电脑因为之前设置的是 我自己的 git hub 账号
5 没有提交代码的权限, 此时我们就要把本地 git 绑定的 github 账户, 换成公司给我注册的 git lab 账号, 然后就可以正常提交代码了
6 控制面板 / 用户账户 / 管理 window 凭据 / 删除之前 git 保存的账号 --> 提交的时候会弹出登录框 --> 输入现在的就可以了