Git文件管理:Git提交

这篇具有很好参考价值的文章主要介绍了Git文件管理:Git提交。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git文件管理:Git提交,Git指南,git

概述

提交是 Git 的核心概念之一,用于在特定时间创建存储库的快照。它可以帮助您捕获当前的项目存储库。git commit命令可以为您提供 git 存储库的历史记录,直到进行此提交或创建快照为止。我们可以在提交中包含一条消息或描述,详细说明该提交的目的。提交还包含大量元数据,例如有关作者姓名、提交 ID 和创建提交的时间戳的详细信息。

先决条件

Git add是一个方便的命令,用于将更改从工作目录添加到暂存区域。它在工作目录中获取修改后的文件,并将修改后的版本放置在暂存区域中。这里,暂存区是存储更改的区域。它是提交之前可以查看、审查、更改和格式化代码的中间区域,并且充当提交的预览位置。因此,git add命令用于将更改添加到暂存区,然后git commit可以通过创建提交来记录这些更改。

因此,git add和git commit是 git 工作流程中使用的基本和主要命令。

要将单个文件添加到暂存区,我们可以编写:

git add <file_name>

要将多个文件添加到暂存区,我们可以指定文件名,每个文件名之间有空格:

git add <file_name_1> <file_name_2> <file_name_3> <file_name_4>

要将工作目录中所有修改的文件添加到暂存区,我们可以这样写:

git add .

Git 提交简介

Git commit是 Git 中最常用的命令。它会拍摄 git 存储库在特定时间进行的更改的快照。它充当保存点,这意味着将来的任何时候,我们都可以返回到这一点,并且它被认为是项目的安全版本,因为 Git 在更改它们之前会进行询问。考虑提交的更改应该位于暂存区域,因为暂存允许我们在提交之前存储它们以供预览,并且当我们想要将这些更改提交到 git 存储库时,git commit 命令允许我们记录这些更改。

git commit帮助我们跟踪项目存储库中的历史记录和更改。如果我们想返回或发现错误,或者想要进行任何更改,它可以在将来为我们提供帮助。

Git文件管理:Git提交,Git指南,git

从上图中我们可以看到,更改已从当前工作目录添加到暂存区域。然后,使用git commit操作将更改保存或提交到 git 存储库。

每个提交都有一个在提交时自动生成的唯一提交 ID,提交 ID 是使用安全哈希算法(也称为 SHA)生成的加密数字。我们应该始终在提交中包含一条消息,因为它有助于总结和描述正在提交的更改,并且可以让其他人轻松查看更改的内容和时间。

Git 提交命令

Git提交命令是:

git commit

它将提交更改并生成一个提交 ID。当在命令行中运行时,上述命令将提交暂存区域中的所有更改,并提示默认编辑器请求提交消息或描述。我们可以输入解释性提交消息,然后保存并退出编辑器以创建实际的提交。

您可以在git commit命令中包含许多选项来满足不同的目的。让我们看看本文中的一些标准选项。

Git Commit-a

git commit命令最流行的选项之一是-a选项;这里,-a表示全部。它用于提交暂存区域中所有更改的快照。此选项仅考虑 Git 中已添加的文件,并且不会提交暂存区域中不存在的新创建的文件。

git commit -a

让我们通过一个例子来理解这一点;假设你有两个文件;一个是已经在暂存区中的hello_world.py文件,我们对其进行了一些更新,另一个文件是新创建的hello_people.py文件,该文件没有添加到暂存区中,那么这个git commit命令将提交所有已使用git 添加到暂存区域的文件,而不是尚未添加到暂存区域且未跟踪的新创建的文件。

运行上述命令后,将提示一个文本编辑器,我们可以在其中输入提交消息,保存并关闭编辑器以创建提交。

Git Commit-m

Git commits -m选项是 commit 命令中最常见和最流行的选项。它可以帮助您在命令行上编写提交消息。

git commit -m "An explanatory and descriptive commit message here."

此命令启动提交过程并允许您同时包含提交消息,因此不会提示文本编辑器。上面的命令将使用给定的提交消息进行提交。

Git 提交修改

git commit amend命令帮助我们更改最后一次提交的提交消息。如果我们提交了错误的消息,这个命令会很方便。传递此选项的主要目的是修改/更新先前的提交。

该命令可以写为:

git commit --amend

上面的命令将提示文本编辑器并要求我们编辑之前的提交消息。编辑消息后,我们可以保存它并关闭文本编辑器;这将转换最后一次提交的提交消息。

如果您不希望出现文本编辑器,则可以使用该命令同时包含提交消息。AA

git commit --amend -m "An explanatory and descriptive commit message here."

修改命令是修复最近提交的一个非常重要的命令。git commit amend 命令的工作原理是将截至该点的所有暂存更改与之前的提交相结合,而不是将其捕获为新快照。

Git文件管理:Git提交,Git指南,git

我们还可以从上图中看到提交历史记录;修改后没有创建新的提交。

注意:
仅应在尚未推送到远程存储库的提交上重写提交。

没有阶段的 Git 提交

对于简单的场景,我们通常将未跟踪的更改添加到暂存区,然后将更改提交到git存储库,我们也可以跳过git add命令,该命令会将文件添加到暂存区,我们可以直接使用-a标志和提交命令,例如:

git commit -a -m "An explanatory and descriptive commit message here."

在这里,我们可以添加更改,然后使用上述命令直接提交它们。但是,通常不建议跳过暂存环境,因为它有时会使您包含不需要的更改。

Git 提交日志

Git commit log是用于查看给定存储库的提交历史记录的命令。git log命令可以帮助你查看整个项目的提交历史记录,借助它,我们可以过滤和搜索特定的更改。

日志中的每个提交都有一个唯一的提交 ID、有关作者的信息、时间戳以及与提交关联的消息或描述。

基本的git log命令将显示最近的提交,可以写为:

git log

Git 日志输出可以通过多种方式进行自定义和过滤。下面介绍了与git log命令相关的一些最常见的选项:

1. git log --oneline

git log --oneline

带有--oneline选项的git log用于将输出显示为每行一次提交。当我们只想获得项目存储库的高级概述以提交历史记录时,它非常有用。

2. git log --patch

git log --patch

或者

git log -p

带有--patch选项的Git 日志用于显示已更改文件的详细信息。它还显示文件中更新行的位置,例如添加、删除或修改的行。此命令与git log --oneline命令相反,因为它提供了项目存储库提交历史记录的详细视图。

3. git log -n <limit>

git log -n <limit>

Git log 命令和 limit 用于限制或限制我们想要列出的提交数量。例如,git log -n 10将仅显示最近的10次提交。这样,我们就可以专注于最近的具体提交。

4. 过滤提交历史记录

我们可以根据需要过滤我们想要查看的提交。我们可以对输出应用作者、日期、金额、时间等过滤器。每种过滤器都有其规格和用途。

A. 作者:

git log --author="Author name"

此命令将显示项目存储库中仅由给定作者所做的所有提交。


b. 按日期和时间:

git log --after="yy-mm-dd"

此命令将显示项目存储库中给定日期之后进行的所有提交。

 git log --after="yy-mm-dd" --before="yy-mm-dd"

此命令有助于跟踪项目存储库中在给定日期之前和给定日期之后两个日期之间创建的所有提交。


C. 通过提交消息:

我们还可以通过提交消息过滤存储库中的提交。为此,我们可以使用 grep 选项:

 git log --grep=" Commit message."

上面的命令将显示所有包含我们在提交消息中提供的单词的提交。

签署您的承诺

在了解如何对提交进行签名之前,我们首先了解一下为什么需要签名以及签名的含义。

如您所知,每个提交都有两个与其关联的属性。

1. 作者:

根据存储的信息,贡献或执行工作的人的姓名。


2. 提交者:

进行更改的人。

两者是相同的,因为在大多数情况下,作者提交了更改。但是,在某些情况下,有人可能会通过获取您的详细信息来配置其 git 设置。例如,某人可以通过应用以下命令使用您的详细信息设置他们的电子邮件和姓名:

git config --global user.email "your_username@example.com"
git config --global user.the name "Your Name"

Git 假定该人提供的姓名和电子邮件地址是真实的。因此,该人所做的提交和更改会被错误地认为是您所做的,因为您的详细信息在更改的上下文中可见。

因此,如果任何用户将电子邮件和姓名都设置为您的,那么这些提交在 GitHub 上就无法区分。这意味着某人可以将他们的电子邮件地址设置为您的电子邮件地址,这将显示为您已承诺。在这种情况下,作者和提交者是不同的。

为了避免这种情况,可以对提交进行签名。这可以让您证明该承诺来自您。如果提交未签名,则无法保证提交的作者不是创建它的人。在某些情况下,这可能会隐藏恶意代码的真正作者。

签名将确保承诺的作者是他所声称的人。签名不会阻止某人将您添加为提交的作者,但会导致未签名的提交,并且不能保证提交的作者与提交者相同。

您将在提交旁边看到一个“已验证”徽章,以确认提交已签名。

让我们使用GPG(Gnu Privacy Guard)签署一份提交。GPG是一种最初为电子邮件传输而开发的加密技术。GPG 是一种双密钥加密方法,其中交换的消息(明文)首先被压缩,然后创建会话密钥作为一次性密钥。压缩的明文使用会话密钥加密。然后,会话密钥使用目标的公钥进行加密,并捆绑到称为密文的加密消息中。目标可以使用私钥解密会话密钥并将其解压缩以恢复原始明文。本文需要详细介绍一下GPG技术。

在这里,我们将重点讨论如何使用这种技术来签署提交。

要生成 GPG 密钥,可以使用以下命令:

gpg --full-gen-key

现在您可以使用以下命令列出 GPG 密钥:

gpg --list-secret-keys --keyid-format lang

您应该看到类似于9BJ5C34989567Y19的输出

现在您需要将 GPG 密钥添加到 GitHub,以便可以验证您的提交。

为此,请按照下列步骤操作:

  1. 前往 GitHub。
  2. 前往设置。
  3. 单击 SSH 和 GPG 密钥。
  4. 单击“新建 GPG 密钥”。
  5. 使用以下命令获取他的 GPG 密钥gpg --armor --export 9BJ5C34989567Y19。
  6. 将密钥粘贴到 GitHub 中
  7. 保存并退出

创建 GPG 密钥并将其上传到 Github 后,您可以配置 Git 以使用您的密钥。

通过运行以下命令将密钥添加到 Git 全局配置:

git config --global user.signingkey 9BJ5C34989567Y19

要每次签署提交,您可以将-S选项与普通提交命令一起使用,例如git commit -S。

您还可以使用以下方式自动签署所有提交:

git config --global commit.gpgSign true

要检查提交是否已签名,请转到 GitHub 并导航到该提交,然后查看其旁边是否有“已验证”徽章。

使用示例

让我们创建一个名为hello_world 的空文件。cpp并向我们的文件添加一些代码。

#include<bits/stdc++.h>
using namespace std;

int main()
{
    cout << "Hello everyone!";
}

让我们使用git add命令将文件添加到暂存区域。

git add .

上面的命令将添加hello_world.txt 文件。cpp文件到暂存区;现在,我们可以使用git commit命令提交文件。

git commit -m "Written the code for printing the "Hello everyone!" statement."

上面的命令将提交更改以及提交描述,如打印“大家好!”的代码中所写的那样。陈述。

如果您想在下一次提交中添加工作副本中的所有更改,那么您可以使用“-a”参数和“-m”选项,从而可以跳过暂存环境步骤,从而省略“ git add”命令,可以写为:

git commit -a -m "Written the code for printing the "Hello everyone!" statement."

现在,考虑一下当您输错了上次提交的消息并想要修改它时的情况;那么,就不需要创建新的提交。我们可以使用修改选项编辑上次提交的提交消息。

git commit --amend -m "New commit message."

要查看我们在项目历史记录中所做的提交,我们可以使用git log命令:

git log

它将显示项目存储库历史记录中创建的提交记录。另外,可能会出现这样的情况:运行git log命令并且卡在那里。当您按 Enter 键时,它将导航到较旧的命令,直到结束标志。因此,在这种情况下要退出git log窗口,您可以按q键,它会将您从窗口中退出,然后您将返回到命令行。

假设我们只想查看刚刚创建的最后两个提交,以使用git log命令中的过滤选项。

git log -n 2

上述命令将仅显示最近的2次提交。文章来源地址https://www.toymoban.com/news/detail-762814.html

结论

  • Git commit是 Git 中最常用的命令,用于在特定时间拍摄存储库暂存更改的快照。
  • git commit命令的-a选项用于提交暂存区域中所有更改的快照。
  • git commit命令的-m选项用于在命令行上写入提交消息。
  • --amend选项用于更改最近提交的提交消息。
  • 修改命令是修复最近提交的一个非常重要的命令。git commit amend 命令的工作原理是将截至该点的所有暂存更改与之前的提交相结合,而不是将其捕获为新快照。
  • 提交消息应该简短、具有解释性并描述已提交的更改。
  • -a选项与-m标志一起使用,可以帮助我们跳过暂存环境直接提交更改。
  • Git commit log 是用于查看给定存储库的提交历史记录的命令。
  • 带有--oneline选项的git log用于将输出显示为每行一次提交。
  • 带有--patch选项的Git 日志用于显示已更改文件的详细信息。
  • Git log 命令和 limit 用于减少我们想要显示的最近提交的数量。
  • 我们可以通过对git log命令应用过滤器来查看特定提交,例如作者、日期、提交 ID、提交消息和时间。
  • 提交签名可帮助您验证代码的作者是否与代码的编写者相同。
  • 签名不会阻止某人将您添加为提交的作者,但会导致未签名的提交,并且不能保证提交的作者与提交者相同。

到了这里,关于Git文件管理:Git提交的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 2、Git使用不完全指南:Git客户端的使用及使用Token认证方式提交代码详解(详细图文)

    2、Git使用不完全指南:Git客户端的使用及使用Token认证方式提交代码详解(详细图文)

    本篇介绍如何在Windows、Linux下安装Git客户端以及从远程代码仓库拉取代码。以及介绍2023如何从GitHub上获取Token令牌、使用Pycharm通过Token令牌从本地push上传仓库的方法,用来解决推送代码报Push failed The requested URL returned error:403的错误问题。 Windows 1、 安装 Git 和 TortoiseGit Git 下载

    2024年02月15日
    浏览(11)
  • Git 的标准提交规范(Conventional Commits)& Git 分支管理

    其中,type 表示本次提交的类型,应该从以下几个类型中选择: feat:新功能 fix:修复问题 docs:文档更新 style:代码风格更新 refactor:重构代码 test:增加测试用例 chore:修改项目配置 [optional scope] 表示本次提交的影响范围,可以根据需要添加。 表示本次提交的描述信息,应

    2024年02月09日
    浏览(7)
  • Git 代码提交注释管理规范

    Git 代码提交注释管理规范

    大致分为三个部分(使用空行 分割): 1.  标题行:  必填,  描述主要修改类型和内容 2.  主题内容:  描述为什么修改, 做了什么样的修改,  以及开发的 思 路等等 3 .  页脚注释: 放 Breaking   Changes   或 Closed   Issues 1.1 type commit    的 类型: feat :  新功能、新特性 fix : 修改 b

    2024年04月28日
    浏览(10)
  • Git忽略已经提交过一次的文件 Git忽略文件

    1、从未提交过的文件可以用.gitignore      也就是添加之后从来没有提交(commit)过的文件,可以使用.gitignore忽略该文件  该文件只能作用于未跟踪的文件(Untracked Files),也就是那些从来没有被 git 记录过的文件  比如,忽略配置文件,可以在.gitignore中写 2、已经推送(p

    2024年02月12日
    浏览(32)
  • Git---查看文件提交的详细信息git show

    Git---查看文件提交的详细信息git show

    1. 直接运行git show 会展示出一下信息: 显示出了上次提交的commit id、作者信息(邮箱和姓名)、提交日期、commit message、代码diff等  2. 还可以使用 HEAD~n 语法或提交哈希来检查过去的提交。使用以下命令就可以获取往前数的第三次提交的详细信息 3. 还可以添加一个 --oneline

    2024年02月12日
    浏览(8)
  • 如何使用Git提交文件

    如何使用Git提交文件

    git remote add origin 远程仓库URL git pull origin 分支名称 git checkout -b 分支名称 其他命令 常用命令 1.从远程仓库克隆项目到本地 git clone 项目地址 2.初始化本地仓库. git init # 创建本地仓库 3.本地仓库与远程仓库关联. git remote add 仓库名 仓库地址 # 仓库名自定义 例如:origin 4.查看仓库

    2024年02月05日
    浏览(4)
  • git 提交指定文件

    1. git status -s --查看仓库状态 2. git add +文件名 --添加需要提交的文件名(加路径--参考git status 打印出来的文件路径) 3. git stash -u -k --忽略其他文件,把现修改的隐藏起来,这样提交的时候就不会提交未被add的文件 4. git commit -m \\\"xxx\\\" 5. git pull 6. git push --推送到远程仓库 7. git s

    2024年02月03日
    浏览(7)
  • 【GIT教程】清除git仓库中某个文件的提交记录

    【Git教程】如何清除git仓库的所有提交记录,成为一个新的干净仓库 最近把一些项目传到Github上面进行开源,配置文件中配置了用户名和密码等一些比较敏感的信息,为了避免暴露这些信息,需要将相关的提交记录给清楚掉。 以 application.yml 来举例说明 第一步:在本地将该

    2024年02月13日
    浏览(30)
  • Git 提交时忽略某些文件

    Git 提交时忽略某些文件

    ①打开项目目录,找到.gitignore文件 ②编辑.gitignore文件,加上要忽略的文件后缀 以上是针对还没有提交过的文件进行过滤 如果已经这些后缀的文件已经提交过,则需要删除远程的该后缀文件 示例:如果要删除远程的.class文件,执行下面的语句,然后提交到远程,进行更新

    2024年02月09日
    浏览(31)
  • 从 Git 提交中删除文件

    如何从最新提交中删除文件? huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。 我认为这里的其他答案是错误的,因为这是一个将错误提交的文件从上一次提交移回暂存区域的问题,而不取消对它们所做的更改。这可以像 Paritosh Singh 建议

    2024年02月02日
    浏览(4)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包