工具_git (详细)

概念理解

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 提交代码到远程仓库 + 拉去代码到本地

  6CLI (脚手架) 项目上传时, 注意配置自己的忽略文件
----------------------------------------------------------------------------------


4 相关知识 🔶
--------------------------------------------------------------------------------------
  1 版本回退问题
  
  2 远程仓库的可视化操作   // 通过理解多看看就知道了, 或者网上也有教程

  3 忽略文件配置规则

  4 配置 SSH
--------------------------------------------------------------------------------------


5 工作流程
-----------------------------------------------------------------------------------------
  1 拿到项目文件 -> 更新我们模块的代码 -> 提交到本地仓库 -> push
  
  2 更新我们负责的模块:  创建分支 --> 写代码 --> 合并分支 --> 提交到本地仓库  "本次修改了哪些内容"
  
  3 push 到远程仓库 (注意查看是否存在版本冲突)
-----------------------------------------------------------------------------------------




1 一个本地仓库可以关联多个远程仓库

2 本地代码上传到远程仓库时, 习惯先执行 git pull, 防止直接覆盖别人的代码

1 git 工具基础配置

  1 安装: https://git-scm.com/   // 直接搜索官网下载 -> 可以让我们通过命令行实现各种 git 所涉及的操作


  2 配置用户信息:  // 设置当前 git 工具的用户和邮箱, 别人可以通过远程仓库知道哪个用户提交的代码
 
    1 git config --global user.name 'zhangwei'     //配置 git 用户名, 需要修改, 重新赋值即可
	2 git config --global user.email '635031145@qq.com'     //配置 git 用户邮箱

	3 git config --global user.name   // 查看用户名
	4 git config --global user.email   // 查看用户邮箱
	5 git config --list   // 查看用户列表

2 初始化本地仓库

新建文件夹 hh -> 命令行以该文件夹为根目录 -> 初始化为本地仓库 (git init)   // hh == 本地仓库了


注意事项: 

  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   // 创建分支 hh

  4 创建并切换 -> git checkout -b hh   // 创建并切换到分支 hh

  5 切换 -> git checkout hh   // 从当前分支, 切换到 hh 分支, 我们工作区的文件也会跟着变化

  6 合并 -> git merge hh   // 把 hh 分支的代码, 合并到当前分支; 也就是让指定分支覆盖当前分支内容
  
  7 删除 -> git branch -d hh   // 删除 hh 分支


2 分支操作理解 ↓

  1 创建分支 -> 理解为拷贝了一份当前分支的项目文件, 放在了新的分支上   // 新分支的各种操作不影响原来的分支

  2 切换分支 -> 也就是切换多个项目文件的备份   // 一般是开发分支和瞎搞分支, 不会直接去动主分支 (master)

  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 "仓库地址"   // 关联本地仓库与远程仓库, hh 就可以用来指代, 该地址对应的远程仓库了

  2 git remote rm hh   // 解除关联

  3 git remote -v   // 查看本地仓库关联的所有远程仓库
----------------------------------------------------------------------------------------------------


2 提交代码到远程仓库 ↓
----------------------------------------------------------------------------------------------------
  1 git push -u hh master   // 提交代码到 hh 远程仓库的主分支; 且设置了 git push 的默认提交位置; 不推介使用

  2 git push   // 设置了 1 之后, 就可以这么提交, 默认为 hh 的主分支, 但是感觉还要记得设置的哪条分支 -> 很麻烦

  3 git push hh dev   // 提交代码到 hh 远程仓库的 dev 分支 -> 简单直接, 推介使用
----------------------------------------------------------------------------------------------------


3 拉取远程仓库的项目到本地工作区 ↓   // 下面地址是不用加引号的
----------------------------------------------------------------------------------------------------
  1 git clone "仓库地址"   // 你要进行开发的时候, 且没有当前项目的版本库时, 需要使用这个; 如果有使用 pull

  2 git pull hh dev   // 拉取 hh 远程仓库 dev 分支的最新项目代码 -> 同样不推介 git pull 的方式

  3 直接下载项目压缩包的方式   // 不包括版本库 -> 适合看别人源码学习的时候使用
----------------------------------------------------------------------------------------------------


4 注意事项 ↓
----------------------------------------------------------------------------------------------------
  1 如果是通过 git clone得到的项目, 那么本地仓库已经"默认"和拉取代码的远程仓库"关联", 并用origin 指代该远程仓库

  2 一个本地仓库是可以并联多个远程仓库的   // 不过很少这么干

  3 git pull hh dev -> 会把远程仓库, 最新版本代码拉取到本地; 且会直接改变我们工作区的内容

  4 git push hh kk -> 如果远程仓库没有 kk 分支, 默认"创建远程分支 kk"   // 通过 git 工具实现该操作

  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/*.txt -- 忽略hh目录下的所有 -- 以txt结尾的文件 */
  6 hh/hh* -- 忽略hh目录下的所有 -- 以hh开头的文件
8 配置 SSH

1 简单描述, 就是使用 SSH 地址, 上传和拉取代码   // 为了方便, 不过个人觉得麻烦, http 地址就很好用


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    //新建xx文件
    vi xx       //编辑xx文件,按i切换到编辑模式,按esc切换到命令模式,输入冒号:wq 回车,保存并返回
    rm      //删除文件
    ls      //查看当前目录的所有文件
    clear   //清屏  Ctrl+L
    :wq     //进入编辑状态如何退出
    
    
问题描述
	1 假设我有俩个账号, 一个是自己的 github, 一个是公司 gitlab
	2 我第一次使用 git 提交代码的时候, 需要输入自己的 github 账号和密码
	3 然后我就可以提交代码到我的, 远程 github 仓库了,    // 它是按照你的 github 上的权限来确定你是否可以提交
	4 但是现在公司为我, 注册了一个 gitlab 账号, 我的 gitlab 有提交的权限, 但是我的电脑因为之前设置的是 我自己的 git hub 账号
	5 没有提交代码的权限, 此时我们就要把本地 git 绑定的 github 账户, 换成公司给我注册的 git lab 账号, 然后就可以正常提交代码了
	6 控制面板 / 用户账户 / 管理 window 凭据 / 删除之前 git 保存的账号  --> 提交的时候会弹出登录框 --> 输入现在的就可以了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值