Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 为什么签入文件称为a';提交';?_Git_Svn_Mercurial - Fatal编程技术网

Git 为什么签入文件称为a';提交';?

Git 为什么签入文件称为a';提交';?,git,svn,mercurial,Git,Svn,Mercurial,在源代码管理存储库(如git、mercurial或svn)中签入文件的行为称为提交。有人知道将其称为提交而不是签入的原因吗 英语不是我的母语,所以它可能是某种语言,我不太了解她,但我实际上承诺了什么?(希望我没有犯罪,但你永远不会知道。) 这是否“委托保存”的意思?它与事务(在事务结束时提交)有关吗?单词“提交”也可以表示为将来使用或保存而保护某些东西。例如,“他将密码提交到内存。”当您“提交”您的更改时,您正在锁定它们,就像现在一样,以备将来保存。请考虑版本控制存储库也是一个引用,就像数据库是

在源代码管理存储库(如git、mercurial或svn)中签入文件的行为称为提交。有人知道将其称为提交而不是签入的原因吗

英语不是我的母语,所以它可能是某种语言,我不太了解她,但我实际上承诺了什么?(希望我没有犯罪,但你永远不会知道。)


这是否“委托保存”的意思?它与事务(在事务结束时提交)有关吗?

单词“提交”也可以表示为将来使用或保存而保护某些东西。例如,“他将密码提交到内存。”当您“提交”您的更改时,您正在锁定它们,就像现在一样,以备将来保存。

请考虑版本控制存储库也是一个引用,就像数据库是引用一样。
该术语来源于数据管理,使一组暂时性的更改永久化。
(请注意,这对于git很有意义,您可以使用
git add
将临时更改添加到索引中,然后再使用
git commit
将其记录到回购中。)

在这些版本控制系统的上下文中,提交是指将源代码的最新更改提交到存储库中,并使这些更改成为存储库头部修订的一部分。
因此,当其他用户从存储库执行
更新
签出
时,他们将收到最新提交的版本,除非他们指定要在存储库中检索源代码的早期版本


盲目抄袭我的macs lex,难道3没有充分解释吗

commit |kəˈmɪt|
verb ( commits, committing, committed ) [ with obj. ]
1 ...
3 (commit something to) transfer something to (a state or place where it can be kept or preserved): he composed a letter but didn't commit it to paper | she committed each tiny feature to memory.
• consign (someone) officially to prison, especially on remand: he was committed to prison for contempt of court.
• send (a person or case) for trial in a higher court: the magistrate decided to commit him for trial .
• send (someone) to be confined in a psychiatric hospital.
• refer (a parliamentary or legislative bill) to a committee.

这主要是为了区分像Subversion这样的集中式VCS与分布式VCS之间的区别。集中式系统使用“签出”和“签入”术语。这些术语有助于表示存在控制这些操作的中央集线器或代理。它有“保险箱”的含义,可以打开然后关闭。当文件上涉及锁时,尤其如此,在Subversion/TFS等上也是如此

DVC更喜欢像“提交”和“更新”这样的不可知术语,因为它举例说明这些操作中没有中央代理

“签入”某些东西也会让人感到困惑,但仍然需要将其“推送”到远程服务器。“签入”具有端到端流程的含义,特别是在风险投资中。这在DVCS中当然不是真的

您可以在DVCS中创建一个名为“签入”的命令别名,该别名执行提交和推送。例如,“签入”、“签出”术语至少可以追溯到20世纪80年代早期的UNIX RCS(修订控制系统),其命令字面上是
ci
co
。在这个和其他较旧的系统中,一个文件一次只能由一个用户编辑,因此“签出”类似于从图书馆签出一本书。在重新签入文件之前,您拥有编辑该文件的独占权限

当CVS(并发版本控制系统)出现时,它保留了这个术语,即使系统是为并发编辑而设计的,并且很少需要锁定文件


但是对于像GIT这样的系统,您可以将整个目录树作为一个集合来处理,每个人都有自己的存储库,在这里或那里发送提交(更改)具有极大的灵活性。您可以选择将一台服务器设置为中央存储库,但不必这样做。因此,签出或签入文件不再有意义。更重要的是,git的作者选择在他们的系统中放弃这个术语。

这是完全错误的。CVS和Subversion这两个最流行的集中式系统几乎都只使用“提交”一词。Subversion只保留提交,因为它是CVS的直接替代品。TFS将其称为签入和签出。我不认为这是“完全错误的”。这个问题需要一个答案来解释不同术语之间的细微差异(用英语来说),这个答案提供了这样一个答案。Subversion只保留了提交——这正是我的观点,事实上,“提交”一词已经被中央风险投资公司使用了几十年。您的回答声称DVCS引入“提交”一词是为了与旧的“签入”一词区分开来,但事实并非如此。我在哪里声称DVCS“引入”了“提交”一词?!你的前两句话相当有力地暗示了这种说法。你说“提交”一词是“主要用来区分像Subversion这样的集中式VCS与分布式VCS之间的区别”。事实并非如此,因为“提交”一词在分散化系统出现之前就已被广泛使用,并且在集中式系统中仍然使用,其含义与以往相同。