为什么git checkout的名称是这样的?

为什么git checkout的名称是这样的?,git,Git,据我所知,git checkout将当前目录中文件的状态更改为树中特定点的状态。因此,它可以用于切换分支或访问以前的提交 为什么选择此操作的名称签出 这是否与“我要去看看这个”相类似 是去图书馆借书吗 我不是问这个名字是不是一个好主意,也不是试图自己对此做出判断——我只是想知道这个名字的历史渊源。我想能告诉你这个名字来自哪里的人是开发git的Linus Torvalds 基于签出所做的操作——切换工作目录的内容,我只能假设这个词的起源与您所描述的一样 从图书馆借书 从文档中: git chec

据我所知,
git checkout
将当前目录中文件的状态更改为树中特定点的状态。因此,它可以用于切换分支或访问以前的提交

为什么选择此操作的名称
签出

这是否与“我要去看看这个”相类似 是去图书馆借书吗


我不是问这个名字是不是一个好主意,也不是试图自己对此做出判断——我只是想知道这个名字的历史渊源。

我想能告诉你这个名字来自哪里的人是开发git的Linus Torvalds

基于签出所做的操作——切换工作目录的内容,我只能假设这个词的起源与您所描述的一样

从图书馆借书

从文档中:

git checkout
-checkout到工作树的分支或路径


链接:
  • 打包文件:
  • 结帐:

    • 这其中大部分是历史性的。Pre-git版本控制系统(VCSes)也使用了动词checkin和checkout

      我正在写的一本书的摘录:

      用作动词, 翻译的意思是 控制风投。 用作名词,version的意思是 从VCS获取的特定版本 (指一个文件或一组文件)。 通常名词形式带有附加修饰语, 如短语所示,
      kanga.c
      roo.c
      的2.1版。 如果没有列出具体的文件,我们通常指的是一切, 或者至少是最近讨论的所有事情: 版本2.1(存储库中的所有内容, 或我们所讨论的特定文件和/或目录)。 单词revision总是一个名词, 但在其他方面与版本的含义相同

      另一个动词,签入, 是指存储到VCS中。 如你所料,如果我们能登记, 我们也可以去看看, 意思是从VCS中提取。 一些VCSE添加动词进行更新, 他们可以用它来区分 提取旧版本(已签出) 并向最新和(我们希望)最伟大的方向发展 (您将更新到其中)。 Mercurial使用更新 作为结帐的纯粹同义词

      它是版本控制系统的一部分,尽管它的行为不同于第一个基于锁的版本控制系统,但它似乎是一种自然的进化

      2005年

      名字 git签出-签出到工作树的分支或路径 [……]

      描述 更新工作树中的文件以匹配索引或目录中的版本 指定的树。如果没有给出任何路径,git签出也将被删除 更新头以将指定的分支设置为当前分支


      2000年


      1986年


      1982年RCS

      man co
      
      co从每个RCS文件中检索修订,并将其存储到相应的工作文件中

      与RCS后缀匹配的路径名表示RCS文件;所有其他表示工作文件。如ci(1)中所述,名称是成对的

      RCS文件的修订版可以签出、锁定或解锁。锁定修订可防止更新重叠。为读取或处理(如编译)而签出的修订版无需锁定。签出以进行编辑和稍后签入的修订通常必须锁定。如果要签出的修订当前被其他用户锁定,则使用锁定签出失败。(可以使用rcs(1)打破锁。)使用锁定签出还要求调用方位于rcs文件的访问列表中,除非他是文件的所有者或超级用户,或者访问列表为空。不锁定的签出不受访问列表限制,并且不受锁定的影响


      一九七二年

      SCCS没有结账,它有一张支票。也许有人能证实它是否从那里得到了这个想法

      检查Like info,但如果未编辑任何内容,则不会打印任何内容;如果正在编辑任何内容,则返回非零退出状态。目的是将其包含在makefile中的“安装”条目中,以确保在安装版本之前将所有内容都包含在SCCS文件中


      SCCS使用动词get而不是checkout。CVS的动词与RCS的动词相同。CVS还允许将
      CVS get
      作为
      CVS checkout
      的同义词。我猜没有包括git get,因为它看起来很奇怪。我应该补充一点,SCCS(仍在积极开发!)将提取分离为get(只读)和edit(相当于RCS
      co-l
      )。签出不一定从包文件中获取内容。内容在包装前以“松散对象”的形式存储。一个新的克隆通常只有一个包文件,但一旦你完成了一系列的工作,它是松散和打包对象的混合体。我完全同意你的看法。如果未打包任何内容,它将无法从.pack文件中获取它。我通常每天都使用git-gc-aggressive来打包我的回购。这就是为什么我要这样做。有没有办法在你的书发行时得到通知?@Alok——不太可能。。。它目前有点停顿,因为我的例子进展不顺利,我又有了一份真正的工作(我是在演出间隙开始的)。
       svn help checkout
      
      checkout (co): Check out a working copy from a repository.
      
       man cvs 
      
      checkout
         Check out sources for editing
      [...]
      
               Create or update a working directory containing copies of the  source
               files  specified  by modules.  You must execute checkout before using
               most of the other cvs commands, since most of them  operate  on  your
               working directory.
      
               The  modules  are either symbolic names for some collection of source
               directories and files, or paths to directories or files in the repos‐
               itory.  The symbolic names are defined in the modules file.  See node
               'modules' in the CVS manual.
      
               Depending on the modules you specify, checkout may recursively create
               directories and populate them with the appropriate source files.  You
               can then edit these source files at any time (regardless  of  whether
               other  software  developers  are  editing  their  own  copies  of the
               sources); update them to include new changes applied by others to the
               source  repository;  or commit your work as a permanent change to the
               source repository.
      
      man co
      
      man SCCS