Git
图
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件

Git简介

分布式版本控制系统

相比于集中式版本控制系统来说,分布式版本控制系统解决了单点故障问题,每个客户端都是一个版本管理端,即便服务中心出现故障,也不影响客户端的版本控制

全局配置

git config --global user.name "FanJun"
git config --global user.email "979398409@qq.com"

初始化仓库

git init

本地仓库状态查看

git status

克隆

git clone url

可指定分支克隆

git clone -b dev url

拉取最新

git pull

在拉取前记得先提交到本地,在拉取出现冲突时可以和本地仓库做对比修改,不然会直接覆盖自己的版本

提交

提交到本地仓库
git add .    完全按照现有的
git add *    合并原有的
添加提交信息
git commit -m 'msg'

添加远程仓库地址(第一次初始化)

git remote add origin https://gitee.com/riskfan/dwm.git

推送

git push orgin master

第一次推送

git push -u origin master

日志

简单日志
git reflog
详细日志
git log

回退(穿梭)

git reset --hard 日志中的版本号

分支

Git的另一个强大功能是分支,同时并行推进多个功能的开发,提高效率,分支如果开发失败不会影响其他分支

git branch 分支名                 创建分支
git branch -v                         查看分支
git checkout 分支名              切换分支
git merge 分支名                  把指定分支合并到当前分支上

分支的底层使用的是指针

提交规范

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

其中,header(第一行)是必需的,body和footer可以省略

不管是哪一个部分,任何一行都不得超过72个字符(或100个字符),这是为了避免自动换行影响美观

Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)

type

用于说明 commit 的类别,只允许使用下面7个标识:

  • feat:表示新增功能(feature)
  • fix:表示修复Bug
  • docs:表示文档更新
  • style:表示代码格式调整,不涉及代码逻辑
  • refactor:表示代码重构,既不是新功能也不是修复Bug
  • perf:表示性能优化
  • test:表示增加测试代码
  • chore:表示对非源码进行的修改,例如构建过程或辅助工具的变更

scope

scope用于说明commit影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同

例如在Angular,可以是$location, $browser, $compile, $rootScope, ngHref, ngClick, ngView等

如果你的修改影响了不止一个scope,你可以使用*代替

subject

subject是commit目的的简短描述,不超过50个字符

其他注意事项:

  • 以动词开头,使用第一人称现在时,比如change,而不是changed或changes
  • 第一个字母小写
  • 结尾不加句号(.)

提交示例

图

清除上一个账号信息

git config --local --unset credential.helper
git config --global --unset credential.helper
git config --system --unset credential.helper
git config --global user.name "xcxxx"
git config --global user.email "xxxxxxx@qq.com"

解决VsCode每次推送都输入密码问题,在项目所在文件夹(即在.git)执行

git config credential.helper store

仓库拥有者不一致错误

提示错误信息为:detected dubious ownership in repository ...

解决办法在控制台使用以下命令解决

git config --global --add safe.directory *

换行符错误

warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it

执行

git config --global core.autocrlf true