git安装
Linux上安装git
在linux上建议用二进制的方式来安装git,可以使用发行版包含的基础软件包管理工具来安装。
- 红帽系
sudo yum install git
- Debian系
sudo apt install git
Windows上安装git
- 去官网下载和操作系统位数相同的安装包.
- 或者可以直接安装GitHub for Windows。该安装程序包含图形化和命令行版本的 Git。 它也能支持Powershell,提供了稳定的凭证缓存和健全的换行设置。 你可以在GitHub for Windows 网站下载
Mac上安装git
- 通过homebrew安装git,brew install git。
- 通过Xcode安装git,在AppStore重安装Xcode,Xcode默认集成了Git。运行Xcode选择菜单Xcode->Preferences,在弹窗中找到Download,选择Command Line Tools,点"Install"就可以完成安装了。
为什么要版本管理
- 版本管理有一个中央服务器,可以保存所有代码、文档
- 每一次的修改都可以提交到版本库,修改有记录,可追踪
- 不害怕某个同事离职了,代码没有入库
- 本地的代码流失后,可以从版本库检出
- 多人协作,每个同事完成的工作提交到版本库,方便进行集成
- 当我们要开发需求或修复PR时,可以从版本库上拉出分支管理
- 在大的企业,每次提交都可能触发一次构建,实时检查代码的质量
- 如果构建失败了,可以自动revert掉某次提交
配置git
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:
git config --global user.name "lennlouis" git config --global user.email "lennlouis@tom.com"
- 如果使用了--global选项,那么该命令只要运行一次,之后无论在该系统上做任何事情,git都会使用那些信息。当你想针对特定的项目使用不同的name email那就在那个项目的目录下运行没有--global选项的命令配置。
- 很多 GUI 工具都会在第一次运行时帮助你配置这些信息。
- 你也可以使用git config --list来查看git的所有配置。
获取帮助
若你使用 Git 时需要获取帮助,有三种方法可以找到 Git 命令的使用手册:
git help <verb> git <verb> --help man git-<verb>
- 例如获得config的命令手册,执行:
git help config
创建仓库
什么是仓库呢?就是可以用git管理的一个目录,这个仓库里所有的文件的改动(增加/修改/删除)都由git跟踪记录。也能通过git查看所有的记录,当然也能够通过git“还原”到某个记录点。
mkdir git_test cd git_test git init
上面三个步骤就可以创建一个空的仓库了,这个时候会在仓库目录下多了一个.git目录,.git目录里由很多关于git管理的文件,有了仓库之后,我们就可以使用git add和git commit向仓库添加要跟踪的文件,和提交修改的内容了。
git add
在仓库里刚新建的文件是不会被跟踪起来的,比如我们使用git status就能查看到文件的状态,需要使用git add才可以。(为了演示需要我创建几个文件)
向暂存区添加文件
git add . # 将所有修改添加到暂存区 git add *.cpp # 将以.cpp结尾的文件的所有修改添加到暂存区 git add hello* # 将所有以Hello开头的文件的修改添加到暂存区,例如: helloWorld.txt,hello.h,helloGit.md ... git add hello?.* # 将以hello开头后面只有一位的文件提交到暂存区 例如:hello1.txt,helloA.cpp 如果是helloGit.txt和hello.cxx是不会被添加的
删除暂存区文件
使用git rm -rf或者git rm --cached把文件从暂存区删除,不是从磁盘删除,只是不被git管理而已。
git commit
git add只是把文件添加到暂存区而已,并没有真正跟踪起来,需要使用git commit命令提交到仓库才能真正被git跟踪记录,git commit命令的用法如下:
git commit -a -m "initial commit" #把暂存区和当前已被跟踪的文件的所有的修改提交到仓库里,-m参数指定了此次提交的message内容 git commit Makefile helloworld.cpp -m "修改编译文件,添加了helloworld.cpp"
优雅地提交修改
git commit file1.name file2.name file3.name .. -m "commit message"
commit指提交修改到本地的仓库里,file*.name指的是带commit的文件 –m后面的内容指提交的信息,即备注。
git commit -a -m "commit message"
添加的-a参数会把当前暂存区里所有的修改(包括删除操作)都提交,但是那些尚未添加到暂存区的内容是不会提交的,网上有很多的博客内容说-a参数会把尚未add的文件也提交了,这个说法是错误的。
git commit --amend
把此次提交追加到上一次的commit内容里。
Angular团队规范
- message格式
<type>(<scope>): <subject> <BLANK LINE> # 标题行:必填,描述主要修改类型和内容 <body> # 主题内容:描述为什么修改,做了什么修改,开发思路等 <BLANK LINE> # 页脚注释:放Breaking Changes或Closed Issues <footer>
- Type分类:
- feat:新特性
- fix:问题修改
- refactor:代码重构
- docs:文档修改
- style:代码格式修改,注意不是css修改
- test:测试用例修改
- chore:其他修改,比如构建流程,依赖管理
- scope:commit影响范围,即影响了什么模块或者组件,比如:route,component,utils,build等
- subject:commit概述,建议符合50/72 formatting
- body:commit具体修改内容,可以分为多行,建议符合50/72 formatting
- footer:一些备注,通常是BREAKING CHANGE或修复的bug链接,或者feature等其他信息
使用git commit模版规范提交
- 在~/.gitconfig文件里添加
[commit] template = ~/.gitmessage
- 添加~/.gitmessage文件
<feat>(<>): <提交描述> <body> <footer> # - type: feat(新特性), fix(修改问题), docs(文档修改), style(代码格式修改, 注意不是 css 修改), refactor(代码重构), test(测试), chore(其他修改, 比如构建流程, 依赖管理) # - scope: (可以为空) 影响的的范围 # - subject 提交描述