提交(commit)是指对文件(或一组文件)所做的个别更改。这就像保存文件一样,但是使用Git时,每次保存都会创建一个唯一的ID(也称为“SHA”或“哈希”),使您可以记录何时、由谁进行了哪些更改。提交通常包含提交消息,这是对所做更改的简要描述。
在Git和GitHub中,“commit”具体意义是什么,我不理解。
注意:这不是任何问题的重复,我已经清楚了git push
。
提交(commit)是指对文件(或一组文件)所做的个别更改。这就像保存文件一样,但是使用Git时,每次保存都会创建一个唯一的ID(也称为“SHA”或“哈希”),使您可以记录何时、由谁进行了哪些更改。提交通常包含提交消息,这是对所做更改的简要描述。
在Git和GitHub中,“commit”具体意义是什么,我不理解。
注意:这不是任何问题的重复,我已经清楚了git push
。
在您修改代码后,您需要进行“commit”操作。
Commit操作会记录您所做的更改。此外,它还保存了代码的修订版本,您可以随时一键将代码还原到任何版本。
这个过程的完美例子就像一棵树。源树是更为精确的例子。这将是解释源树上git branch的最佳方式:
每次提交都是“主分支”上的一个点,主分支就像树干一样。您可以在树上添加一个分支,并仅在此分支上添加更多提交。更改后,您可以将更改合并到主分支中。因此,总之,git用作代码版本管理器。它知道如何处理冲突并将几个不同的版本组合成一个版本。这是比较两个不同代码版本(提交)的屏幕截图。 希望我帮到了你 :)提交(commit)是git中的一种“对象”,用于标识和指定提交时分支的“快照(snapshot)”。
一个对象(object)是存储在.git/objects下的文件。
例如:对象e6f53bc19b182fed6cd580329747f93393504389是存储在.git/objects/e6/f53bc19b182fed6cd580329747f93393504389下的文件。
如果该对象是一个提交(commit),它记录了其他对象,这些对象共同指定了提交的“快照”。
通常,在提交中记录的“其他对象”只有两个 - 当前提交的父提交和指定实际文件的“树(tree)”对象。
您可以这样检查一个对象:
$ 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中指定快照的文件。它包含对父提交和树对象的一个或多个引用。
有3种类型的'git对象'
提交对象:包含对提交对象和树对象的引用
树对象:包含对'blob'对象和树对象的引用
blob对象:包含文件内容,一个blob对象通常代表一个完整的文件。
(是的,这是一个老问题。但为了帮助网络搜索者...)
可能会引起混淆的一个可能点是,在git术语中,“commit”既是名词又是动词。从它的词汇表中可以看出:
作为名词:Git历史记录中的单个点;整个项目的历史记录表示为一组相互关联的提交。单词“commit”在Git中经常用于其他版本控制系统使用“revision”或“version”的地方。也用作提交对象的简写。
作为动词:将项目状态的新快照存储到Git历史记录中,通过创建代表索引当前状态的新提交并将HEAD推进到指向新提交来完成。
git commit 命令会捕获项目当前暂存的更改快照。提交的快照可以被视为项目的“安全”版本——除非你明确要求,否则 Git 永远不会更改它们。在执行 git commit 命令之前,需要使用 git add 命令将更改推广或“暂存”到将存储在提交中的项目中。这两个命令 git commit 和 git add 是最常用的两个命令之一。
ctrl
+s
,那么提交的必要性是什么? - Pratik pound