IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git使用笔记 -> 正文阅读

[开发工具]Git使用笔记


在这里插入图片描述

前言

Git是一个免费的、开源的分布式版本控制系统,旨在以快速高效的方式处理从小型到大型的所有项目。

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git用了有些年了,但用到的功能不多,而且大多数时候都是在各种图形界面中进行操作的,总的来说虽然一直在用但对Git算不上了解,打算从头好好梳理下。

Git官网提供了丰富的教程: https://git-scm.com/book/zh/v2 。官网的教程比较全面,内容比较多,平时使用时当作字典查询来说并不方便。这边文章将对相关内容做个摘录或补充,方便自己查询使用。

使用笔记

软件安装

Windows
Windows上直接在下面地址下载安装包安装就行:
https://git-scm.com/downloads
安装时可以选择勾选在资源管理器集成(windows explorer integration)git bashgit gui,这样就可以在文件夹右击打开相应工具。

Debian/Ubuntu
Debian或Ubuntu中使用 sudo apt install git 命令来安装,安装完成后可以先设置下用户名和邮箱地址:

sudo apt install git-all

基础设置

安装完成后可以先设置下用户名和邮箱地址(可能需要以管理员身份运行):
在这里插入图片描述

git config --global user.name "naisu"
git config --global user.email naisu@example.com

上面带有 --global 的是全局设置,也可以在每个项目中不带该参数来对这个项目单独设置。

可以使用 git config --list 来查看当前的配置,也可以使用 git config 配置项 来查看单项的配置情况。

本地使用

在本地目录中可以 使用 git init 来初始化仓库 ,初始化完成后就会生成一个 .git 的隐藏目录。

本地使用来说git分为三个区域:
在这里插入图片描述
三区划分只是管理上一个抽象的概念,通常项目文件夹中除 .git 目录外的都属于工作区,剩下两区实际存储都是在 .git 目录中的。

本地使用中对三个区的基础操作如下:
在这里插入图片描述

使用 commit 提交到本地仓库中就是开发各个过程的归档了,每次提交时会生成一份快照并对此校验生成一串40位的字符串作为本次校验的编号。除了初次提交外每次提交时还会包含它的父提交的指针。

Git中有一个HEAD指针表示只向当前工作所在的某次提交。如果有需要就可以从仓库中 checkout 检出将工作区恢复成某次提交时的版本。检出操作会移动HEAD指针,然后恢复工作区。
在这里插入图片描述
Git中一次次的提交串成一条线,这被称为分支,分支有自己的名称和指向最后一次提交的指针,并且通常的时候HEAD指针其实是指向某条分支的。通常使用 git init 初始化仓库时就会有默认的分支master。

可以使用 git branch <branch-name> 来创建分支,然后使用 git checkout <branch-name> 来切换分支;或者也可以使用 git checkout -b <branch-name> 直接创建并切换到新分支。HEAD在哪里,提交时就只会从那里开始增长。
在这里插入图片描述
可以使用 git merge <branch-name> 将指定分支合并到当前分支,合并完成后没用的分支可以使用 git branch -d <branch-name> 进行删除。
在这里插入图片描述

远程交互

Git是一个分布式版本控制系统,项目仓库可以托管在一个公共的服务器上,方便团队合作开发或是异地开发。

远程交互使用时各个区的基本交互如下:
在这里插入图片描述
相比新项目使用 git init 来初始化仓库而言,很多时候基于已有的项目进行开发的情况可能更常见点,所以 使用 git clone <url> 方式克隆远程仓库到本地 是更加常用的方式。

使用 git clone <url> 通常情况下克隆的只有master分支,不包含远程仓库中其它分支。可以使用 git branch -a 来查看远程分支,然后可以使用命名检出该分支。当然更加常用的是使用 git clone -b <branch-name> <url> 直接克隆某个分支。

忽略文件

项目目录下的 .gitignore 文件用于描述不需要版本控制的文件的匹配规则。下面是个基本规则的示例:

# 忽略所有的 .a 文件
*.a

# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a

# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO,即不进行递归
/TODO

# 忽略任何目录下名为 build 的文件夹
build/

# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt

# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf

对于很多项目该文件也有模板可供参考:
https://github.com/github/gitignore

提交信息格式参考

提交信息最常见的格式是 Angular Git Commit Guidelines 。简单点表示就是下面这样:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
  • type 本次 commit 的类型;
    • feat 添加新特性;
    • fix 修复 bug;
    • docs 仅仅修改了文档;
    • style 仅仅修改了空格、格式缩进、typo 等等,不改变代码逻辑;
    • refactor 代码重构,没有加新功能或者修复 bug;
    • perf 增加代码进行性能测试;
    • test 增加测试用例;
    • chore 改变构建流程、或者增加依赖库、工具等;
  • scope 本次 commit 波及的范围;
  • subject 本次 commit 的主旨(标题);
  • body 本次 commit 的详细描述;
  • footer 本次 commit 相关的链接;

更多内容可以参考下面:
https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits

实际使用中这个格式只是参考,可以根据实际情况选择。一般来说标题不能少,因为在单行模式查看日志的时候会显示第一行信息。

Git常用命令速查表

在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:25:53  更:2022-05-24 18:26:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/21 11:28:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码