6181


プログラミングに関する質問というよりは，英語に関する質問かもしれません．

Gitで，`checkout <branch-name>`とはブランチ`branch-name`に”チェックアウト”するコマンドです．  
ちょうど，ホテルのイメージで，ブランチがホテルの各部屋に対応しているような直感的理解をしているのですが，チェックアウトはホテルから出るときの用語だと思います．

なぜブランチに入るコマンドは`checkin`ではなく`checkout`なのでしょうか？


CC BY-SA 3.0
2015-02-09T05:45:15.403
6176
2020-08-07T09:56:07.493
2020-08-07T09:56:07.493
3060
565
question
git 専門用語
"checkout" の意味するところ


私の場合は `svn checkout`
を長く使っていたことがあったので、そこは最初違和感がありました。一般的な単語で、紛らわしい使い方だと私も思います。辞書を引くと:

> **checkout** , /ˈtʃɛkaʊt/, NOUN
>
>   1. A point at which goods are paid for in a supermarket or similar store.  
>  _‘shelves near the checkout point often contain sweets, books, or
> magazines’_
>   2. [MASS NOUN] The administrative procedure followed when a guest leaves a
> hotel at the end of their stay  
>  _‘any extra charges will be settled with guests on check-out’_
>

>
> -- from [Oxford Dictionary
> ‘checkout’](http://www.oxforddictionaries.com/definition/english/checkout)

  1. お店で、買い物の支払いがされるところ
  2. ホテルでゲストが退出する際の事務的手続き

(口語で「check out」といったら、「ちょっと試してみてよ/見てみてよ」という意味にもなります。)

これという資料が見つからなかったので私の解釈になってしまいますが、`git checkout` の checkout
は、「変更履歴など全てのリソースを持つレポジトリから一部の作業コピーを取り出す」ということを check-out といっています。 SVN
では、サーバから作業コピーを取り出すことを check-out と呼びます。 Git
の場合は、ローカルにあるディレクトリは「レポジトリ＋作業コピー」です。複数のブランチの情報と変更履歴等をローカルレポジトリとして持っていますから、そこから指定のブランチの作業コピーを取り出す
（ファイルの変更を全て元に戻して、指定のブランチのファイルセットに置き換える） ことも、 check-out と呼んでいると受け取れます。そうすると
`git clone` と `git checkout` も頭の中で区別できるのではないでしょうか。


CC BY-SA 3.0
2015-02-09T06:13:06.457
6178
2015-02-09T06:38:52.683
2015-02-09T06:38:52.683
4978
4978
6176
answer


自分は、図書館(library)の貸出デスク(check-out desk)の事だと勝手に思ってました。  
借りて行くことをcheck-outと言っていたと思います。  
貸出中の書籍は、あることはわかっていますが、借りることはできません。


CC BY-SA 3.0
2015-02-09T06:37:20.183
6180
2015-02-09T06:37:20.183
3793
6176
answer


[English Language &
Usage](https://english.stackexchange.com/questions/211634/what-checkout-is-
supposed-to-mean-in-git-checkout-sentence) に類似する質問がありました。

回答によると、`check
out`というコマンドがもともとRCSという古いバージョン管理システムで使われており、（図書館から）本を借りるという意味のようです。

svnやgitはコマンドの名前だけ継承しているので意味がわかりにくいですが、RCSでは`check
out`すると排他的なロックがかかり他の人が編集できない仕様だったので、本の貸出に喩えてこの単語を使っていたのでしょう。


CC BY-SA 3.0
2015-02-09T06:41:21.050
6181
2015-02-09T07:03:55.570
2017-04-13T12:38:46.083
-1
3639
6176
answer