文章目录
- git的安装及使用
- git和npm相关面试题
-
- git
-
- 1、git是什么
- 2、Git常用的命令有哪些?
- [3、git pull、git merge、git fetch三个命令的区别?](#3、git pull、git merge、git fetch三个命令的区别?)
- 4、Git如何解决版本冲突?
- [5、git rebase的作用?及与git merge区别](#5、git rebase的作用?及与git merge区别)
- [6、你使用过git stash命令吗?你一般什么情况下会使用它?](#6、你使用过git stash命令吗?你一般什么情况下会使用它?)
- 7、如何查看分支提交的历史记录?查看某个文件的历史记录呢?
- 8、若本次提交误操作,如何撤销
- 9、本地修改配置文件,这些文件不需被提交
- 10、Git和SVN的区别?
- npm
-
- 1、npm是什么
- [2、Vue CLI 工程中常用的 npm 命令有哪些?](#2、Vue CLI 工程中常用的 npm 命令有哪些?)
- [3、运行 npm run xxx 时发生了什么?](#3、运行 npm run xxx 时发生了什么?)
- [4、npm i 和 npm install的区别](#4、npm i 和 npm install的区别)
git的安装及使用
git
一、安装及配置
1、电脑下载安装git
2、配置环境变量
3、配置git的config
bash
git config --glogbal user.email 'xx'
git config --glogbal user.name 'xx'
4、git 与远程仓库连接
- 执行命令,生成SSH密钥对
- 找到id_rsa.pub文件
- 打开git仓库个人设置,找到ssh公钥,将 复制的 公钥粘贴到公钥栏位,然后点击确定
bash
ssh-keygen -t rsa -C "你的邮箱@xxx.com"
二、项目中使用
bash
//克隆到本地
git clone <远程仓库地址>
//拉master最新代码
git pull origin master
//切到开发分支
git checkout dev
//合并master到本地分支
git merge master
// 开发结束,提交到缓存区
git add .
// 提交暂存区的文件到本地仓库,并附上提交信息
git commit -m "Initial commit"
// 开发分支代码上传
git push origin dev
//切换到主分支
git checkout master
//拉master最新代码
git pull origin master
//合并开发分支到主分支
git merge dev
//主分支代码上传
git push origin master
git和npm相关面试题
git
1、git是什么
Git 是一个开源的 分布式 版本控制系统
2、Git常用的命令有哪些?
git clone 将远程仓库复制到本地
git checkout 切换分支
git add 添加文件到暂存区
git commit 提交文件到本地仓库
git pull 从远程仓库拉取项目到本地
git push 将本地仓库的新的改变推送到远程仓库
git merge 合并
3、git pull、git merge、git fetch三个命令的区别?
git pull :是在本地仓库已经存在的情况下,将远程最新的commits抓取并合并到本地版本库的过程
git fetch : 从远程版本库抓取最新的commits ,不会进行合并
git merge :合并
总结git pull = git fetch + git merge
4、Git如何解决版本冲突?
产生的原因 :开发过程中,每个人都有自己的开发分支 ,若和别人同时修改了公共文件 的时候,他先提交后我再提交 就会报冲突错误
解决方案
- 冲突点少时: 对比本地文件和远程分支文件,若冲突点少则手动复制远程冲突行到本地
- 用vscode:打开冲突文件,git提示冲突位置,修改
- 使用命令
bash
git stash //暂存本地修改
git pull //拉取远程分支代码 合并到本地
git stash pop //将暂存区修改 合并到最新的工作空间中
5、git rebase的作用?及与git merge区别
git rebase(变基)和 git merge(合并)都是Git中用于整合两个分支变更的命令
总结:私有分支用 rebase,公共分支用 merge
定义:
假设你有两个分支:
- main:主分支(稳定版本,多人协作)
- feature:你开发新功能的分支(独立开发)
git merge 像「联姻」
把 main 和 feature 分支的历史「联姻」 ,双方都保留自己的完整过去 ,同时创建一个新的「合并提交」 (merge commit),记录这次合并操作。最终分支图会有「分叉→汇合」的痕迹。
git rebase 像「认祖归宗」
把 feature 分支的所有提交「摘下来」,先让 feature 分支「继承」main 的最新状态 (相当于你「重新基于」最新的 main 开发),再把摘下来的提交「重新应用」到 main 后面 。最终 feature 的历史变成「线性」,没有分叉。
原文链接:https://blog.csdn.net/jj1245_/article/details/155389969
区别:
- 历史记录 :
merge保留完整、真实的分叉历史 ;rebase生成线性、整洁的历史 ,但改写了提交历史。 - 安全性 :
merge是非破坏性操作 ,不改写已有提交,适合团队协作和公共分支 。rebase会改写提交哈希和基底,在已共享给其他人的分支上使用可能导致协作问题。 - 冲突处理 :使用
merge时,所有冲突一次性解决,然后生成合并提交 。使用rebase时,需要按提交顺序逐个解决冲突,每解决一个提交的冲突后才能继续应用下一个提交。
使用场景:
- **git merge:**合并到公共分支;不想改写历史
- **git rebase:**同步公共分支的更新到个人分支;提交未共享的分支
6、你使用过git stash命令吗?你一般什么情况下会使用它?
作用:将工作区修改内容存储到栈区
使用场景
- 解决冲突: 先暂存开发内容,拉取master最新代码,再取出
- 遇紧急开发任务时: 当前任务不能提交时,先暂存起来,开发完紧急任务,再取出继续开发
- 切换分支时 当前工作内容未提交时,要先存起来,再切换分支
7、如何查看分支提交的历史记录?查看某个文件的历史记录呢?
bash
// 查看当前分支前number个历史记录
git log -number
//查看所有分支前number个
git reflog -number
//查看某个文件
git log -number file
查看分支的提交历史记录:
git log --number:表示查看当前分支前number个详细的提交历史记录 ;
git log --number --pretty=oneline:在上个命令的基础上进行简化,只显示sha-1码和提交信息 ;
git reflog --number: 表示查看所有分支前number个简化的提交历史记录 ;
git reflog --number --pretty=oneline:显示简化的信息历史信息;
8、若本次提交误操作,如何撤销
撤销提交到 索引区 文件: git reset HEAD file
撤销提交到 本地仓库 的文件
git reset -soft HESD^n:版本库恢复到上一次提交的状态,索引区和工作空间不变更git reset -mixed HESD^n:版本库和索引区恢复到上一次提交的状态,工作空间不变更git reset -hadHESD^n:版本库、索引区和工作空间都恢复到上一次提交
9、本地修改配置文件,这些文件不需被提交
新建.gitignore文件,里面写不需要提交的文件名
bash
/target/class
.settings
.vscode
10、Git和SVN的区别?
相同点 :git和svn都是版本控制系统,两者都有自己的服务器。
区别:
- git是分布式,svn不是分布式。
- git把内容按元数据方式存储,而svn按文件。
- git分支和svn分支不同。
- git没有一个全局版本号,svn有。
- git版本号要优于svn
npm
1、npm是什么
npm 是一个NodeJS包管理和分发工具。
2、Vue CLI 工程中常用的 npm 命令有哪些?
npm install:安装依赖
npm run dev(vue2) / npm run serve(vue3):启动开发服务器
npm run build:生产打包
npm run build --report:查看打包体积分析
3、运行 npm run xxx 时发生了什么?
npm 会读取 package.json 中 scripts 字段对应的命令
若命令指向本地依赖 (如 vue-cli-service serve),npm 会自动将 ./node_modules/.bin 加入 $PATH,从而找到可执行文件并运行
无需全局安装即可使用本地工具链
4、npm i 和 npm install的区别
npm i 安装的模块无法用npm uninstall卸载,需用npm uninstall i
安装报错时,install肯定会出现npm-debug.log文件,而npm i 不一定