【问题标题】:What is exactly meaning of commit command in gitgit中commit命令的确切含义是什么
【发布时间】:2017-10-13 17:04:19
【问题描述】:

提交是

提交或“修订”是对文件(或一组 文件)。就像您每次保存文件时一样,除了使用 Git 您保存它会创建一个唯一 ID(也称为“SHA”或“哈希”), 允许您记录何时以及由谁进行了哪些更改。 提交通常包含一个提交消息,它是一个简短的描述 做了哪些更改。

但我没听懂

git 和 git hub 中commit 的确切含义是什么?

注意:-这不是任何问题的重复我很清楚git push

【问题讨论】:

  • “提交就像是整个项目的保存或快照。”
  • @aryamccarthy 如果我在编辑器中点击ctrl +s 那么需要提交什么
  • 使用 git,a) 它作为一个组跟踪所有文件,b) 它是分布式的。您和多人可以在多台机器上处理同一组文件。

标签: git github git-commit


【解决方案1】:

git commit 命令捕获项目当前阶段性更改的快照。提交的快照可以被认为是项目的“安全”版本——除非你明确要求,否则 Git 永远不会更改它们。在执行 git commit 之前, git add 命令用于提升或“暂存”将存储在提交中的项目的更改。这两个命令 git commit 和 git add 是最常用的两个。

【讨论】:

    【解决方案2】:

    在您对代码进行更改后,您将执行“提交”。

    提交设置有关您所做更改的消息。 提交还保存了代码的修订版本,您可以随时一键将代码恢复为任何版本。

    一直以来,这方面的完美例子就像一棵树。更精确的源树。这将完美地解释源代码树上的git branch

    每次提交都在“master”上,master就是树干。

    您可以向树中添加一个分支,并仅在该分支上添加更多提交。 更改后,您可以将更改合并到 master。

    所以总而言之,git 被用作代码版本管理器。知道如何处理冲突并将几个不同的版本组合成一个版本。

    这是比较两个不同代码版本(提交)的屏幕截图

    希望我能帮到你:)

    【讨论】:

      【解决方案3】:

      提交是 git 中的一种“对象”,在提交时识别并指定分支的“快照”。

      对象是存储在 .git/objects 下的文件

      例如:对象 e6f53bc19b182fed6cd580329747f93393504389 是存储在 .git/objects/e6/f53bc19b182fed6cd580329747f93393504389 的文件

      如果对象是一个提交,它会记录一起指定提交“快照”的其他对象。

      通常,提交中记录的“其他对象”只是另外两个对象——当前提交的父提交和指定实际文件的“树”对象。

      你可以这样检查一个对象

      $ git cat-file -p e6f53bc19b182fed6cd580329747f93393504389
      tree 7cb95c95270b3f28a3cb6e2107f89dc7e950d93e
      parent 507dbda38d769e8c69b3701cbd21a40b3a39206e
      author xx <xx@xx.com> 1578053251 +0000
      committer xx <xx@xx.com> 1578053251 +0000
      
      my big commit message here!
      
      

      就是这样。提交是存储在 .git/objects 中的指定快照的文件。它包含一个或多个对父提交的引用和对树对象的引用。

      “git 对象”有 3 种类型

      提交对象:包含对提交对象和树对象的引用

      树对象:包含对“blob”对象和树对象的引用

      blob对象:包含文件内容,一个blob对象通常代表一个完整的文件。

      【讨论】:

        【解决方案4】:

        (是的,老问题。但是为了帮助网络搜索者......)

        一个可能的混淆点是,在 git lingo 中,“commit”既是名词又是动词。从它的词汇表

        作为名词:Git 历史中的一个点;项目的整个历史都表示为一组相互关联的提交。 Git 经常在相同的地方使用“提交”这个词,其他版本控制系统使用“修订”或“版本”这个词。也用作提交对象的简写。

        作为动词:在 Git 历史记录中存储项目状态的新快照的操作,方法是创建一个表示索引当前状态的新提交并推进 HEAD 以指向新提交。

        (见https://git-scm.com/docs/gitglossary

        【讨论】:

          猜你喜欢
          • 2013-07-22
          • 1970-01-01
          • 2011-12-14
          • 1970-01-01
          • 2014-10-23
          • 2017-04-19
          • 2011-05-06
          • 2011-05-25
          相关资源
          最近更新 更多