git、github、npm、node多版本管理
Git和Npm相关命令
这里写目录标题
一.git仓库
1、新建github项目
2、连接本地与远程仓库
2.1 第一种方法,复制到本地,本地修改之后,重新上传
// 1.复制项目
git clone https://github.com/mashize-m/personalstore.git
// 2.将本地创建的项目复制到clone下来的项目中
// 3.查看文档状态
git status
// 4.将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
git add .
// 5.将缓存区内容添加到本地仓库
git commit -m '注释'
// 6.将本地仓库提交到远程仓库
git push
2.2 第二种方法,从命令行推送现有存储库(常用方式)
// 需要先git init 初始化
git init
// github创建空白的项目时,也会有提示
// ..或从命令行推送现有存储库
git remote add origin https://github.com/mashize-m/vue3-ts-cms.git
git branch -M main // gitee里没有这条命令
git push -u origin main // 第一次推送现有存储库,先走 git add 和 git commit
3、克隆项目到本地
git clone git@192.168.1.132:dingwz/datamanager.git
4、代码拉取和提交
4.1 拉取代码
git pull origin master
4.2 提交代码
git push origin master
4.3 提交代码时冲突解决
提示:
error: Your local changes to the following files would be overwritten by merge:
Please commit your changes or stash them before you merge.
# 保留你文件的修改,将所有未提交的修改(工作区和暂存区)保存至堆栈中
git stash
# 将当前stash中的内容弹出,并应用到当前分支对应的工作目录上
git stash pop
4.4 版本回退
git
通过HEAD
指针记录当前版本,所以可以通过HEAD
来改变git
版本指向达到回退的目的。
主程序:HEAD -> master
// 回退上一个版本
git reset --hard HEAD^
// 回退上上一个版本
git reset --hard HEAD^^
// 回退指定版本(commit id)
git reset --hard 0d528212...
5、常见问题处理
解决warning: LF will be replaced by CRLF in方法
注意:不是false就是true
git config --global core.autocrlf false
git config --global core.autocrlf true
6、分支
6.1 为什么需要使用分支呢?
-
开发某个项目,在默认分支master上进行开发
-
实现项目的功能需求,不断提交。
-
并且在一个大的版本完成时,发布版本,打上一个tag v1.0.0;
-
继续开发后续的新功能,正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补, 你将按照如下方式来处理:
-
切换到tag v1.0.0的版本,并且创建一个分支hotfix;
-
想要新建一个分支并同时切换到那个分支上,你可以运行一个带有 -b 参数的 git checkout 命令:
git checkout –b hotfix
-
分支上开发、修复bug
- 我们可以在创建的hotfix分支上继续开发工作或者修复bug;
- 当完成要做的工作后,重新打上一个新的tag v1.0.1;
-
切换回master分支,但是这个时候master分支也需要修复刚刚的bug
- 所以我们需要将master分支和hotfix分支进行合并
- 切换分支:
git checkout master
- 合并分支:
git merge hotfix
-
合并分之后,如果有代码冲突,处理代码冲突部分。之后重新提交代码
-
提交远程分支
git push origin develop # 这里的develop要跟你本地创建的分支名一致
6.2 分支常用命令
# 1. 列出所有本地分支和远程分支
git branch -a
# 2. 如果git branch -a 没有找到 git的上的远程分支
git fetch
# 3. 在本地新建dev分支,并将本地的dev分支和远程的的dev分支建立关联(常用这个)
git checkout -b dev origin/dev
# 4. 切换到指定分支/标签
git checkout [branch-name/tag]
# 5. 选择一个commit(可以是其他分支的commit),合并进【当前分支】
# 冲突解决参考:https://blog.csdn.net/weixin_44799217/article/details/128279250
git cherry-pick [commit哈希值]
# 6. 合并指定分支到当前分支
git merge <branch> # 例如:当前所在A分支,将B分支的内容合并到A分支中,git merge <B>
# 7.将本次内容推送到 指定的某一远程分支(可以是之前没有关联关系的分支),并建立关系
# --set-upstream 好像就是 -u
git push --set-upstream origin HEAD:[branch-name] # git push --set-upstream origin HEAD:zrzy/gm/dev1.3
6.3 分支【非】常用命令
# 1. 列出所有本地分支
git branch
# 2. 列出所有远程分支
git branch -r
# 3. 新建一个分支,但依然停留在当前分支
git branch [branch-name]
# 4. 新建一个分支,并切换到该分支
git checkout -b [branch]
# 4. 将本地分支 dev 推送到远程仓库并创建一个同名的分支(不需要先git add/commit)
git push origin dev:dev
# 5. 查看本地分支和远程分支的关联情况
git branch -vv
# 6. 新建一个分支,与指定的远程分支建立追踪关系
git branch --track [branch] [remote-branch]
git branch --track dev origin/dev
# 7. 将创建的分支推送到git上,并建立追踪关系
git push --set-upstream origin [branch-name]
# 8. 创建新分支
git checkout <new-branch>
# 9. 切换到上一个分支
git checkout -
# 10. 建立追踪关系,在现有分支与指定的远程分支之间
git branch --set-upstream-to=origin/<branch> <branch>
# 13. 删除分支
git branch -d [branch-name]
# 14. 删除远程分支
git push origin --delete [branch-name]
// git branch -dr [remote/branch]
# 15. 基于最新提交(commit)创建标签
git tag <tagname> # 基于最新提交(commit)创建标签
7、git工作流(git flow)
基本工作流
常见的git flow
8. 新建仓库简单方式
8.1 新建github/gitlab仓库
8.2 复制SSH连接
8.3 项目中输入命令
git remote add origin <ssh连接>
git remote -v
查看
git push --set-upstream origin master
git push
注意:
如果遇到 fatal: not a git repository (or any of the parent directories): .git
报错,可以先 git init
一下就可以了
二、npm
1、修改npm仓库地址(ShineGisClient23d)
npm config set registry http://192.168.11.146:8073/repository/npm-all/
2、查看源,可以看到设置过的所有的源
npm config get registry
3、设置回原来的淘宝源
npm config set registry https://registry.npm.taobao.org // 2024-01-24 过期
npm config set registry https://registry.npmmirror.com
3、设置回npm镜像源
npm config set registry https://registry.npmjs.org/
4、npm i xx --save 和npm i xx --save-dev 区别
-S(s)
是--save
的缩写 也就是 添加在dependencies生产环境
中
-D(d)
是--save-dev
的缩写 也就是添加在devDependencies开发环境
中
-G(g)
是添加全局
,比如我们要全局使用yarn工具,就可以全局安装,可以理解为添加了一个环境变量
dependencies文件夹
生产环境依赖
。生产环境一般是位于服务器上的,一般只会放index.html 以及css和js这种静态资源。生产环境依赖则说明必须要使用该环境,比如axios等
devDependencies
开发环境依赖。也就是说只需要我们在写代码时需要使用的,比如babel,webpack等,这些在生产环境上是不需要的
如果只是npm i xxx
,那么默认
添加到生产依赖
,也就是类似 npm i xxx --save
三、github查询技巧
1、直接查询
直接输入要搜索的内容,例如:vue
2、条件查询:in:
vue in:name # 项目名称中有vue
vue in:readme # readme文件中提及 "vue" 的仓库
vue in:description # 仓库名称或说明中有vue
vue in:topics # “vue”作为主题的存储库
language:JavaScript # 匹配语言是JavaScript
stars:>3000 # stars数
forks:>100 # forks数
# 复合查询
editor in:name stars:>3000 language:JavaScript
参考:https://docs.github.com/cn/search-github/searching-on-github/searching-for-repositories
3、高级查询
https://github.com/search/advanced
四、nvm多版本管理node
1.查看版本
nvm -v //查看nvm版本
nvm --version //显示 nvm 版本
2.显示版本列表
nvm list // 显示已安装的版本(同 nvm list installed
nvm list installed // 显示已安装的版本
nvm list available // 显示所有可以下载的版本
3.安装指定版本node.js
nvm install 14.5.0 // 安装 14.5.0 版本的 node.js
nvm install latest // 安装最新版本
4.使用指定版本node
nvm use 14.5.0 // 切换到 14.5.0 版本的 node.js
--lts // 自动切换到长期支持版本
--lts=<LTS name> // 自动切换到指定名称的node长期支持版本
5.卸载指定版本 node
nvm uninstall 14.5.0 // 卸载到 14.5.0 版本的 node.js
nvm uninstall --lts // 卸载长期支持版本的node
nvm uninstall --lts=<LTS name> // 卸载一个指定名称的长期支持版本的node
6.显示命令行帮助信息
nvm --help //显示命令行帮助信息
7.查看nvm安装路径
nvm root
8.配置nvm的node和npm镜像:
运行nvm root 显示出nvm的安装目录
打开nvm文件夹下的settings.txt文件,在最后添加以下代码:
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)