# Git 使用

Workspace:工作区 Index :暂存区 Repository:本地仓库 Remote:远程仓库

下面我们逐步介绍我们 Git 的使用 foo

# 建立 Git 仓库

查看 Git 版本信息:git -v

初始化仓库:git init

下载远程代码(及从远程库导文件到本地仓库): git clone url(远程地址)

查看远程库地址: git remote -v

# 设置用户信息(及登录信息)

查看当前 Git 的配置信息: git config --list

邮箱信息: git config --global user.email "邮箱地址"

用户名信息: git config --global user.name "用户名"

项目中遇到的实际问题:配置信息完成后,代码 push 时出现的问题。 注:Git 用户权限错误

修改 config 文件,在请求地址前面加上用户名:用户密码@请求地址

恭喜你到这一步,你已经顺利的完成了 git 仓库的建立。接下来我们学习一下如何上传远程库和拉取远程代码

# 信息查看

显示提交信息: git show

显示当前分支的最近几次提交: git reflog

显示当前分支的版本历史: git log

显示有变更的文件: git status

# 分支操作

查看所有本地分支:

git branch

查看所有远程分支:

git branch -r

查看所有tag

git tag

查看所有本地分支和远程分支:

git branch -a

新建分支(但依然停留在当前分支):

git branch 分支名

删除分支:

git branch -d 分支名

删除当前分支外的所有分支:

git branch | xargs git branch -d

删除分支名包含指定'dev'的分支:

git branch | grep 'dev*' | xargs git branch -d

命令解析:| 管道命令,用于将一串命令串联起来。前面命令的输出可以作为后面命令的输入。
git branch
用于列出本地所有分支。
grep
搜索过滤命令。使用正则表达式搜索文本,并把匹配的行打印出来。
xargs
参数传递命令。用于将标准输入作为命令的参数传给下一个命令。

新建分支(并切换到新建的分支上):

git checkout -b 分支名

切换分支:

git checkout 分支名

切换tag:

git checkout tag名

合并分支:

git merge 分支名 (需要合并的分支名)

将本地仓库关联到新建的远程仓库上

git remote add origin 远程仓库地址

拉去指定远程分支

git clone -b 分支名 远程仓库地址

# commit操作

commit对比
比较两个commit-id之间的差异:
git diff [commit-id] [commit-id]

commit合并
查找到需要合并的 commit 提交 Id:
git cherry-pick commit-id

合并多个commit $ git rebase -i [开始点commit-id] [结束点commit-id]

# 代码暂存处理

git stash 代码暂存 git stash list 获取暂存列表 git stash pop 获取暂存代码

# 代码回滚

固定回滚到某个 commit 点: git reset id 号(commit 提交的 id 号)

# 版本节点

创建 tag 节点: (在某个 commit 上打 tag) git tag tag 名 commit 的 ID

本地 tag 推送到线上: git push origin tag 名

删除 tag 节点: git tag -d tag 名

删除远程分支 git push origin :refs/tags/tag 名

# 上传代码

  1. 当你已经完成本地的开发任务时,需要上传代码就需要进行一下命令操作了。 查看当前修改的文件: git status

  2. 将文件添加到暂存区: git add 文件名 (如果用“.”那么则表示所有修改的文件)

  3. 将修改文件提交到本地仓库并添加修改备注: git commit -m"备注内容"


注: 在 commit 中我实际的项目引入了 GitCZ 这个工具管理,主要用于提交类型管理 > git cz 使用 GitCZ 的使用只是我开发中的一些小小习惯而已,所以不强制要求大家都必须使用。

 1. feat:新功能(feature)
 2. fix:修补bug
 3. docs:文档(documentation)
 4. style: 格式(不影响代码运行的变动)
 5. refactor:重构(即不是新增功能,也不是修改bug的代码变动)
 6. test:增加测试
 7. chore:构建过程或辅助工具的变动


  1. 拉取一下远程分支代码避免代码冲突: git pull origin 远程分支名(一般拉取主分支 master)

  2. 上传本地代码: git push origin 远程分支名

# 拉取代码

获取远程分支代码: git pull origin master(一般拉取都是主分支获取直接每天更新的开发分支)

# 打印版本

  • 打印所有标签 git tag
  • 打印符合检索条件的标签 git tag -l 1..
  • 查看对应标签状态 git checkout 1.0.0
  • 创建轻量标签 git tag 1.0.0-light
  • 创建带备注标签(推荐) git tag -a 1.0.0 -m "这是备注信息"
  • 针对特定 commit 版本 SHA 创建标签 git tag -a 1.0.0 0c3b62d -m "这是备注信息"
  • 删除标签(本地) git tag -d 1.0.0
  • 发送所有 git push origin --tags
  • 指定版本发送 git push origin 1.0.0
  • Git 版本 > V1.7.0 git push origin --delete 1.0.0
  • 旧版本 Git git push origin :refs/tags/1.0.0

# Git 常用问题

# 1、拉取代码报错:You have not concluded your merge

错误截图:foo

解决方案:

一、保留你本地的修改

git merge --abort

git reset --merge

二、抛弃本地的修改

git fetch --all

git reset --hard origin/master

git fetch

# 2、上传代码报错: failed to push some refs to

报错截图:foo 解决方案:

先拉去一次:git pull origin heyp

再次提交:git push origin heyp

若是还未解决

git pull --rebase origin heyp

git push -u origin heyp

# yarn 命令

版本查看:yarn -v

建立新工程 :yarn init

添加依赖包:yarn add

安装全局依赖包:yarn global add

只在开发环境安装依赖包:yarn add XXX --dev

更新依赖包:yarn upgrade

移除依赖包:yarn remove

脚本运行:yarn serve

查看依赖包列表:yarn list

项目打包:yarn build


# 生成 package.json 文件(需要手动选择配置)
yarn init

# 生成 package.json 文件(使用默认配置)
yarn init -y

# 一键安装 package.json 下的依赖包
yarn

# 在项目中安装包名为 xxx 的依赖包(配置在 dependencies 下),同时 yarn.lock 也会被更新
yarn add xxx

# 在项目中安装包名为 xxx 的依赖包(配置在配置在 devDependencies 下),同时 yarn.lock 也会被更新
yarn add xxx --dev

# 全局安装包名为 xxx 的依
yarn global add xxx

# 运行 package.json 中 scripts 下的命令
yarn xxx

# cli3 使用

npm install -g @vue/cli

或者 yarn 安装

yarn global add @vue/cli

个人建议 yarn 安装(可视化操作)

vue ui