跳转至

git学习笔记

git安装

方式1:scoop安装(推荐🔥🔥🔥)

scoop install git

方式2:常规安装

git下载地址:http://git-scm.com/downloads,下载安装包,一直点击下一步就好。

Ubuntu

sudo apt install git -y

Fedora

sudo yum install git -y

git基本配置

1.配置个人的用户名和电子邮件

git config --global user.name "Your Name"
git config --global user.email "email@example.com"
# 可通过命令git config --list查看是否设置成功。

2.生成SSH秘钥

生成SSH是用来把你的项目上传、联接到远端,比如Github,Gitee等代码托管平台,如果只是在本地进行版本控制,不需要生成SSH密钥。

ssh-keygen -t rsa -C "youremail@example.com" 
# 生成id_rsa(私钥)和id_rsa.pub(公钥)

# 查看配置
git config --list # 默认是当前仓库
git config --list --local 
git config --list --global # 全局配置
git config --list --system # 系统配置

3.免密登录

ssh-copy-id -i ~/.ssh/id_rsa.pub xx@192.168.x.x

书籍推荐:

git可视化工具

git提交规范

提交格式

type (scope):subject
空行
body
空行
  • type部分说明:

用于说明git commit的类别,只允许使用下面的标识。

  • feat:新功能(feature)。
  • fix:修复bug,可以是QA发现的BUG,也可以是研发自己发现的BUG。
  • docs:文档(documentation)。
  • style:格式(不影响代码运行的变动)。
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)。
  • perf:优化相关,比如提升性能、体验。
  • test:增加测试。
  • chore:构建过程或辅助工具的变动,以及一些杂项
  • revert:回滚到上一个版本。
  • merge:代码合并。
  • sync:同步主线或分支的Bug。

  • scope

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

  • subject

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

描述使用的语言:看团队,中英文均可,结尾不加句号或其他标点符号。

根据以上规范git commit message将是如下的格式:

fix(DAO):用户查询缺少username属性 

feat(Controller):用户查询接口开发

我的Git配置

原生git配置

#!/bin/bash

# git基本信息配置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

# 运行 `git pull` 时,Git 会自动执行 `git pull --rebase`
# 作用:从远程仓库拉取最新的代码,并通过 `rebase` 将本地分支的提交重新应用到远程分支的最新基础上
# 不会产生 `merge commit`,而是将本地分支的提交重新排列到远程分支的最新提交之后,使提交历史更加线性。
git config --global pull.rebase true

# git log 日志美化
# git lg:显示当前分支的历史记录
git config --global alias.lg "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ad)%C(reset) %C(white)%s%C(reset) %C(dim cyan)- %an%C(reset)%C(bold yellow)%d%C(reset)' --date=format:'%Y-%m-%d %H:%M:%S (%a)'"

# git lga:显示所有分支的历史记录
git config --global alias.lga "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ad)%C(reset) %C(white)%s%C(reset) %C(dim cyan)- %an%C(reset)%C(bold yellow)%d%C(reset)' --date=format:'%Y-%m-%d %H:%M:%S (%a)' --all"

评论