【CycleISP: Real Image Restoration via Improved Data Synthesis】ISP论文--1(个人笔记,勿喷)

本文主要是介绍【CycleISP: Real Image Restoration via Improved Data Synthesis】ISP论文--1(个人笔记,勿喷),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要
大规模数据集的可用性有助于释放深度卷积神经网络 (CNN) 的真正潜力。然而,对于单图像去噪问题,捕获真实数据集是一个无法接受的昂贵和繁琐的过程。因此,图像去噪算法主要是在合成数据上开发和评估的,这些合成数据通常是在广泛假设加性高斯白噪声 (AWGN) 的情况下生成的。尽管 CNN 在这些合成数据集上取得了令人印象深刻的结果,但正如最近的基准数据集所报告的那样,它们在应用于真实相机图像时表现不佳。这主要是因为 AWGN 不足以模拟真实的相机噪声,这种噪声是信号相关的并且由相机成像管道进行大量转换。在本文中,我们提出了一个在正向和反向方向上对相机成像管道进行建模的框架。它允许我们生成任意数量的真实图像对,用于在 RAW 和 sRGB 空间中进行去噪。通过在真实的合成数据上训练一个新的图像去噪网络,我们在真实的相机基准数据集上实现了最先进的性能。我们模型中的参数比以前最好的 RAW 去噪方法小 5 倍。此外,我们证明了所提出的框架可以推广到图像去噪问题之外,例如,用于立体电影中的颜色匹配。源代码和预训练模型可在 https://github.com/swz30/CycleISP 获得。
1. Introduction
由于深度 CNN [33],高级计算机视觉任务(例如图像分类、对象检测和分割)取得了重大进展。 CNN 成功背后的主要驱动力是大规模数据集 [17, 38] 的可用性,其中包含数十万张带注释的图像。然而,对于低层次的视觉问题(图像去噪、超分辨率、去模糊等),即使是收集很小的数据集也极具挑战性和重要性。例如,获取噪声配对数据的典型过程是拍摄同一场景的多个噪声图像,并通过逐像素平均生成干净的真实图像。在实践中,由于光照条件和相机/物体运动的变化,空间像素错位、颜色和亮度失配是不可避免的。此外,这种获取图像对的昂贵且繁琐的操作需要使用不同的相机传感器重复进行,因为它们表现出不同的噪声特性。

图 1:从 DND 数据集 [44] 中对真实摄像机图像进行去噪。我们的模型可以有效去除真实噪声,尤其是低频色度和缺陷像素噪声。

因此,单张图像去噪主要是在合成设置中执行的:获取大量干净的 sRGB 图像并添加合成噪声以生成它们的噪声版本。在合成数据集上,现有的基于深度学习的去噪模型产生了令人印象深刻的结果,但与传统方法相比,它们对真实相机数据的泛化能力较差 [8, 15]。最近的基准测试也证明了这一趋势 [1, 44]。这种行为源于这样一个事实,即深度 CNN 是在通常使用加性高斯白噪声 (AWGN) 假设生成的合成数据上进行训练的。真实的相机噪声与 AWGN 根本不同,因此对深度 CNN 造成了重大挑战 [6、22、24]。
在本文中,我们提出了一种合成数据生成方法,可以在 RAW 和 sRGB 空间中生成逼真的噪声图像。主要思想是在通过我们学习的与设备无关的转换获得的 RAW 图像中注入噪声,而不是直接在 sRGB 图像中注入噪声。我们框架背后的关键见解是,sRGB 图像中存在的真实噪声是由常规图像信号处理 (ISP) 管道 [6, 46] 中执行的一系列步骤复杂化的。因此,与 RAW 传感器数据 [35] 相比,在 sRGB 中对真实相机噪声进行建模本质上是一项艰巨的任务。例如,RAW 传感器空间的噪声与信号有关;在去马赛克之后,它变得空间色相关;在通过管道的其余部分后,其概率分布不一定保持高斯分布[52]。这意味着相机 ISP 会大量转换传感器噪声,因此需要考虑成像管道影响的更复杂的模型来合成真实噪声,而不是统一的 AWGN 模型 [1, 26, 44]。
为了利用 Internet 上可用的 sRGB 照片的丰富性和多样性,所提出的合成方法的主要挑战是如何将它们转换回 RAW 测量值。布鲁克斯等人。 [7] 提出了一种逐步反转相机 ISP 的技术,从而允许从 sRGB 转换为 RAW 数据。然而,这种方法需要有关目标相机设备的先验信息(例如,颜色校正矩阵和白平衡增益),这使其特定于给定设备,因此缺乏普遍性。此外,相机管道中的一些操作是专有的,这样的黑匣子很难逆向工程。为了应对这些挑战,在本文中,我们提出了一个 CycleISP 框架,该框架将 sRGB 图像转换为 RAW 数据,然后再转换回 sRGB 图像,而不需要任何相机参数知识。这个属性允许我们在 RAW 和 sRGB 空间中合成任意数量的干净和逼真的噪声图像对。我们的主要贡献是:
• 学习一种与设备无关的转换,称为 CycleISP,它允许我们在 sRGB 和 RAW 图像空间之间来回移动。
• 真实图像噪声合成器,用于在 RAW 和 sRGB 空间中生成干净/嘈杂的配对数据。
• 具有双重注意机制的深度 CNN,可在多种任务中有效:学习 CycleISP、合成真实噪声和图像去噪。
• 从 RAW 和 sRGB 图像中去除噪声的算法,在 DND [44] 和 SIDD [1] 的真实噪声基准上设置新的最先进技术(见图 1)。此外,我们的去噪网络的参数(2.6M)比之前的最佳模型(11.8M)[7]少得多。
• CycleISP 框架超越了去噪,我们通过一个额外的应用来证明这一点,即立体电影中的色彩匹配。
2. Related Work

无论采用何种采集方法,图像中都不可避免地存在噪声;现在比以往任何时候都更重要,因为大多数图像来自具有小传感器尺寸但大分辨率的智能手机相机。单图像去噪是计算机视觉和图像处理社区中一个广泛研究的问题,早期的工作可以追溯到 1960 年代 [6]。经典的去噪方法主要基于以下两个原则。 (1) 使用 DCT [61]、小波 [19, 54] 等修改变换系数。 (2) 平均邻域值:在所有方向上使用高斯核,仅当像素具有相似值时在所有方向上 [55, 57]并沿着轮廓 [42, 50]。
虽然上述这些方法在图像保真度指标和视觉质量方面提供了令人满意的结果,但 Buades 等人的非局部均值 (NLM) 算法。 [8] 在去噪方面取得了重大进展。 NLM 方法利用了自然图像中存在的冗余或自相似性 [20]。多年来,基于补丁的方法产生了可比的结果,因此促使研究 [11,12,37] 调查我们是否达到了去噪性能的理论极限。随后,Burger 等人。 [9] 在大型合成噪声数据集上训练一个简单的多层感知器 (MLP)。这种方法与以前的复杂算法相比表现良好。最近的几种方法使用深度 CNN [4, 7, 25, 28, 45, 64, 65, 2] 并展示了有希望的去噪性能。
图像去噪可应用于 RAW 或 sRGB 数据。然而,捕获不同的大规模真实噪声数据是一个非常昂贵且乏味的过程,因此我们不得不研究合成环境中的去噪。开发和评估图像去噪最常用的噪声模型是 AWGN。因此,为 AWGN 设计的算法不能有效地从真实图像中去除噪声,正如最近的基准测试所报告的那样 [1, 44]。更准确的真实 RAW 传感器噪声模型包含与信号相关的噪声分量(散粒噪声)和与信号无关的加性高斯分量(读取噪声)[22,23,24]。相机 ISP 将 RAW 传感器噪声转换为复杂的形式(空间色相关,不一定是高斯)。因此,在 sRGB 空间中估计用于去噪的噪声模型需要仔细考虑 ISP 的影响。在本文中,我们提出了一个框架,该框架能够合成真实的噪声数据以训练 CNN,从而有效地从 RAW 和 sRGB 图像中去除噪声。

3. CycleISP
为了综合现实的噪声数据集,我们在这项工作中使用了两阶段的方案。首先,我们开发了一个框架,可以在正向和反向两个方向对相机 ISP 进行建模,因此命名为 CycleISP。其次,使用CycleISP,我们将逼真的噪声数据集合成原始DeNoising和SRGB图像Denoising的任务。在本节中,我们仅描述我们的CycleISP框架,该框架将相机ISP建模为Deep CNN系统。图2显示了CycleISP模型的模块:(a)RGB2RAW网络分支和(b)RAW2RGB网络分支。此外,我们引入了一个辅助色彩校正网络分支,该分支向RAW2RGB网络提供明确的色彩关注,以便正确恢复原始的SRGB图像。
图2中的噪声注入模块只有在合成噪声数据时才需要(第4节),因此我们在学习CycleISP时将其保持在 "关闭 "状态。CycleISP的训练过程分为两步:首先独立训练RGB2RAW和RAW2RGB网络,然后再进行联合微调。接下来,我们介绍CycleISP的不同分支的细节。请注意,我们使用RGB而不是sRGB来避免符号杂乱。
在这里插入图片描述
图 2:我们的 CycleISP 在两个方向上对相机成像管道进行建模。它包括两个主要分支:RGB2RAW 和 RAW2RGB。 RGB2RAW 分支将 sRGB 图像转换为 RAW 测量值,而 RAW2RGB 分支将 RAW 数据转换为 sRGB 图像。辅助颜色校正分支为 RAW2RGB 网络提供显式颜色注意。噪声注入模块在训练 CycleISP 时关闭(第 3 节),在合成噪声数据时打开(第 4 节)。

3.1. RGB2RAW Network Branch
数码相机对 RAW 传感器数据应用一系列操作,以生成可用于显示器的 sRGB 图像 [46]。我们的 RGB2RAW 网络分支旨在反转相机 ISP 的效果。与 [7] 的未处理技术相比,RGB2RAW 分支不需要任何相机参数。
给定输入 RGB 图像 Irgb ∈ R H×W×3 ,RGB2RAW 网络首先使用卷积层 M0 提取低级特征 T0 ∈ R H×W×C 为:T0 = M0(Irgb)。接下来,我们通过 N 个递归残差组 (RRG) 传递低级特征图 T0 以提取深度特征 Td ∈ R H×W×C 为:在这里插入图片描述
其中每个 RRG 包含多个双重注意块,我们将在 3.3 节中看到。
然后我们将最后的卷积运算M1应用于特征Td,得到去马赛克的图像ˆIdem∈R H×W×3。我们特意将M1层的输出通道数设置为三个,而不是一个,以便尽可能多地保留原始图像的结构信息。此外,我们根据经验发现,这有助于网络更快、更准确地学习从sRGB到RAW的映射。在这一点上,网络能够反转色调映射、伽马校正、色彩校正、白平衡和其他转换的效果,并为我们提供图像ˆIdem,其值与场景辐射度呈线性关系。最后,为了生成经过马赛克处理的RAW输出ˆIraw∈R H×W×1,Bayer采样函数fBayer被应用于ˆIdem,根据Bayer模式每个像素省略两个颜色通道:
在这里插入图片描述
RGB2RAW 网络使用线性和对数域中的 L1 损失进行优化,如下所示:
在这里插入图片描述
在其中一个小的常数以进行数值稳定性,而IRAW是基真实图像。与[21]相似,添加对数损耗项以对所有图像值强制执行大致相等的处理;否则,网络将更多地关注恢复高光区。
3.2. RAW2RGB Network Branch
数码相机对RAW传感器数据进行了一系列的操作,以生成可用于显示器的sRGB图像[46]。我们的RGB2RAW网络分支旨在颠覆相机ISP的影响。与[7]的未处理技术相比,RGB2RAW分支不需要任何相机参数。
给定输入 RGB 图像 Irgb ∈ R H×W×3 ,RGB2RAW 网络首先使用卷积层 M0 提取低级特征 T0 ∈ R H×W×C 为:T0 = M0(Irgb)。接下来,我们通过 N 个递归残差组 (RRG) 传递低级特征图 T0 以提取深度特征 Td ∈ R H×W×C 为:在这里插入图片描述
其中每个 RRG 包含多个双重注意块,我们将在 3.3 节中看到。
然后我们将最后的卷积运算M1应用于特征Td,得到去马赛克的图像ˆIdem∈R H×W×3。我们特意将M1层的输出通道数设置为三个,而不是一个,以便尽可能多地保留原始图像的结构信息。此外,我们根据经验发现,这有助于网络更快、更准确地学习从sRGB到RAW的映射。在这一点上,网络能够反转色调映射、伽马校正、色彩校正、白平衡和其他转换的效果,并为我们提供图像ˆIdem,其值与场景辐射度呈线性关系。最后,为了生成经过马赛克处理的RAW输出ˆIraw∈R H×W×1,Bayer采样函数fBayer被应用于ˆIdem,根据Bayer模式每个像素省略两个颜色通道。
在这里插入图片描述
RGB2RAW 网络使用线性和对数域中的 L1 损失进行优化,如下所示:
在这里插入图片描述
其中,一个小常数用于数值稳定,Iraw是地面真实RAW图像。与[21]类似,加入对数损失项是为了强制对所有的图像值进行大致相同的处理;否则,网络会将更多的注意力放在恢复高光区域上。

3.2. RAW2RGB Network Branch
虽然 RAW2RGB 网络的最终目标是为 sRGB 图像去噪问题生成合成逼真的噪声数据,但在本节中,我们首先描述如何将干净的 RAW 图像映射到干净的 sRGB 图像(在图 3 中将噪声注入模块“关闭”)。 2)。
令 Iraw 和 ^Irgb 为 RAW2RGB 网络的输入和输出。首先,为了恢复平移不变性并降低计算成本,我们将 Iraw 的 2×2 块打包成四个通道(RGGB),从而将图像分辨率降低一半 [7, 13, 25]。由于输入的 RAW 数据可能来自具有不同 Bayer 模式的不同相机,我们通过应用 Bayer 模式统一技术 [39] 确保打包图像的通道顺序为 RGGB。接下来,卷积层 M2 后跟 K - 1 个 RRG 模块将打包的 RAW 图像 编码为深度特征张量在这里插入图片描述在这里插入图片描述
请注意,Iraw 是原始相机 RAW 图像(不是 RGB2RAW 网络的输出),因为我们这里的目标是首先独立地学习 RAW 到 sRGB 的映射

颜色注意单元。
为了训练 CycleISP,我们使用了 MIT-Adobe FiveK 数据集 [10],其中包含来自多个不同相机的图像,这些相机具有多样化和复杂的 ISP 系统。 CNN 很难为所有不同类型的相机准确地学习 RAW 到 sRGB 的映射函数(因为一个 RAW 图像可能会映射到许多 sRGB 图像)。一种解决方案是为每个相机 ISP [13、51、62] 训练一个网络。但是,此类解决方案不可扩展,并且性能可能无法推广到其他相机。为了解决这个问题,我们建议在 RAW2RGB 网络中包含一个颜色注意单元,该单元通过颜色校正分支提供明确的颜色注意。颜色校正分支是一个 CNN,它以 sRGB 图像 Irgb 作为输入并生成颜色编码的深度特征张量 。在颜色校正分支中,我们首先将高斯模糊应用于 Irgb,然后是卷积层 M3、两个 RRG 和一个具有 sigmoid 激活 σ 的门控机制:在这里插入图片描述
其中 * 表示卷积,K 是标准差为 12 的高斯核。这种强模糊操作确保只有颜色信息流过这个分支,而结构内容和精细纹理来自主 RAW2RGB 网络。使用较弱的模糊会破坏等式的特征张量 Td0 的有效性。 (4)。整体颜色注意力单元过程变为:在这里插入图片描述
其中,⊗是Hadamard积。为了得到最终的sRGB图像ˆIrgb,来自颜色注意单元的输出特征Tatten分别通过RRG模块、卷积层M4和升尺度层Mup[53]。
在这里插入图片描述
为了优化 RAW2RGB 网络,我们使用 L1 损失:
在这里插入图片描述
3.3. RRG: Recursive Residual Group
在最近基于残差学习框架[29]的低水平视觉方法[48, 63, 64, 66]的进展的激励下,我们提出了RRG模块,如图3所示。RRG包含P个双重注意块(DAB)。 每个DAB的目标是抑制不太有用的特征,只允许传播信息量更大的特征。 DAB通过使用两种注意机制来执行这种特征的重新校准:(1)通道注意(CA)[30],和(2)空间注意(SA)[58]。整个过程是:在这里插入图片描述
其中U∈R H×W×C表示特征图,这些特征图是在DAB开始时对输入张量Tin∈R H×W×C进行两次卷积得到的,Mc是最后一个卷积层,滤波器大小为1×1。
在这里插入图片描述

图 3:递归残差组 (RRG) 包含多个双重注意块 (DAB)。每个 DAB 包含空间注意和通道注意模块.

Channel attention
这个分支是为了利用卷积特征的通道间依赖性。它首先进行挤压操作,以编码空间上的全局背景,然后再进行激励操作,以充分捕捉通道间的关系[30]。挤压操作是通过在特征图U上应用全局平均池化(GAP)来实现的,从而产生一个描述符z∈R 1×1×C。激励运算器使用两个卷积层对描述符z进行重新校准,然后进行sigmoid激活,并产生激活s∈R 1×1×C。最后,CA分支的输出是通过用激活的s重新缩放U来获得的。

Spatial attention
该分支利用特征的空间间关系并计算空间注意力图,然后用于重新缩放传入的特征 U。为了生成空间注​​意力图,我们首先独立地对特征 U 应用全局平均池化和最大池化操作。通道维度并连接输出图以形成空间特征描述符 。接下来是卷积和 sigmoid 激活以获得空间注意力图。

3.4. Joint Fine-tuning of CycleISP
由于RGB2RAW和RAW2RGB网络最初是独立训练的,由于它们之间的不连接,它们可能无法提供最佳质量的图像。因此,我们进行联合微调,其中RGB2RAW的输出成为RAW2RGB的输入。 联合优化的损失函数是。
在这里插入图片描述
其中 β 是一个正常数。请注意,RAW2RGB 网络从 RAW2RGB 子损失(仅第二项)接收梯度。而 RGB2RAW 网络接收来自两个子损失的梯度,从而有效地促进了最终 sRGB 图像的重建。

4. Synthetic Realistic Noise Data Generation
捕获完美对齐的真实噪声数据对非常困难。因此,图像去噪主要是在人工环境中研究的,其中高斯噪声被添加到干净的图像中。虽然最先进的图像去噪方法 [9, 64] 在这些合成数据集上显示出良好的性能,但在应用于真实相机图像时表现不佳 [1, 44]。这是因为合成噪声数据从根本上不同于真实的相机数据。在本节中,我们描述了使用建议的 CycleISP 方法在 RAW 和 sRGB 空间中合成逼真的噪声图像对以进行去噪的过程。
RAW去噪数据: CycleISP 方法的 RGB2RAW 网络分支将干净的 sRGB 图像作为输入,并将其转换为干净的 RAW 图像(顶部分支,图 2)。我们在训练 CycleISP 时保持关闭的噪声注入模块现在变为“开启”状态。噪声注入模块将不同级别的镜头和读取噪声添加到 RGB2RAW 网络的输出中。我们使用与 [7] 中相同的程序来采样镜头/读取噪声因子。因此,我们可以从任何 sRGB 图像生成干净及其对应的噪声图像对
sRGB 去噪的数据:
给定合成的 RAWnoisy 图像作为输入,RAW2RGB 网络将其映射到有噪声的 sRGB 图像(底部分支,图 2);因此我们能够为 sRGB 去噪问题生成一个图像对在这里插入图片描述。虽然这些合成图像对已经足以训练去噪网络,但我们可以通过以下过程进一步提高它们的质量。我们使用真实相机捕获的 SIDD 数据集 [1] 微调 CycleISP 模型(第 3.4 节)。对于每个静态场景,SIDD 在 RAW 和 sRGB 空间中都包含干净和嘈杂的图像对。微调过程如图 4 所示。请注意,添加随机噪声的噪声注入模块被替换为(仅用于微调)通过从真实 RAWnoisy 中减去真实 RAWclean 图像获得的每像素噪声残留图片。微调过程完成后,我们可以通过将干净的 sRGB 图像输入 CycleISP 模型来合成逼真的噪声图像。
在这里插入图片描述
图4:微调CycleISP以合成真实的sRGB噪声数据。
5. Denoising Architecture
如图 5 所示,我们提出了一个使用多个 RRG 的图像去噪网络。我们的目标是将所提出的网络应用于两种不同的设置:(1)对 RAW 图像进行去噪,以及(2)对 sRGB 数据进行去噪。我们在两种设置下使用相同的网络结构,唯一的区别在于输入和输出的处理。对于 sRGB 空间中的去噪,网络的输入和输出是 3 通道 sRGB 图像。为了对 RAW 图像进行去噪,我们的网络将 4 通道噪声打包图像与 4 通道噪声级别图连接起来作为输入,并为我们提供 4 通道打包去噪输出。噪声水平图基于其拍摄和读取噪声参数 [7] 提供了输入图像中存在的噪声标准偏差的估计值。
在这里插入图片描述
图 5:提议的去噪网络。除了处理输入和输出外,它具有相同的网络结构,用于对 RAW 图像和 sRGB 图像进行去噪
结果没写

这篇关于【CycleISP: Real Image Restoration via Improved Data Synthesis】ISP论文--1(个人笔记,勿喷)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/269095

相关文章

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi