入职前回顾一下git-01

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模版规范提交

  1. ~/.gitconfig文件里添加
[commit]
	template = ~/.gitmessage

  1. 添加~/.gitmessage文件
<feat>(<>): <提交描述>

<body>

<footer>

# - type: 
    feat(新特性), 
    fix(修改问题), 
    docs(文档修改), 
    style(代码格式修改, 注意不是 css 修改), 
    refactor(代码重构), 
    test(测试), 
    chore(其他修改, 比如构建流程, 依赖管理)
# - scope: (可以为空)
    影响的的范围
# - subject
    提交描述

相关推荐

  1. 一周感慨

    2024-07-14 22:14:01       30 阅读
  2. 测试工作(新)感悟

    2024-07-14 22:14:01       37 阅读
  3. 新员工通识考试

    2024-07-14 22:14:01       20 阅读
  4. <span style='color:red;'>01</span>-<span style='color:red;'>GIt</span>

    01-GIt

    2024-07-14 22:14:01      25 阅读
  5. 回顾一下磁盘管理

    2024-07-14 22:14:01       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 22:14:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 22:14:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 22:14:01       58 阅读
  4. Python语言-面向对象

    2024-07-14 22:14:01       69 阅读

热门阅读

  1. 日记

    2024-07-14 22:14:01       22 阅读
  2. mmc-utils 的 MMC 测试工具

    2024-07-14 22:14:01       20 阅读
  3. docker

    docker

    2024-07-14 22:14:01      22 阅读
  4. python的自省机制(改bug有用)

    2024-07-14 22:14:01       19 阅读
  5. 面试官:如何在SpringBoot启动时执行特定代码

    2024-07-14 22:14:01       20 阅读
  6. 一劳永逸:彻底解决PyCharm中gcc编译器错误

    2024-07-14 22:14:01       17 阅读
  7. TestNG测试框架入门与实践

    2024-07-14 22:14:01       18 阅读
  8. OJ-0710

    2024-07-14 22:14:01       16 阅读
  9. throw 和throws的区别详解

    2024-07-14 22:14:01       19 阅读
  10. Springboot中Aop的使用案列

    2024-07-14 22:14:01       19 阅读
  11. 计算机网络——常见问题汇总2

    2024-07-14 22:14:01       16 阅读