[解決済み】Linus TorvaldsがGitがファイルを "決して "追跡しないと言ったのは、どういう意味ですか?
質問
Linus Torvaldsが、Gitはいくつのファイルを扱えるのかという質問に対して、彼の言葉を引用しています。 2007年、Googleで開催されたテックトーク (43:09):
<ブロッククオート...Gitはあなたのコンテンツを追跡します。1つのファイルを追跡することは決してありません。Gitでは、ファイルを追跡することはできません。できるのは、1つのファイルを持つプロジェクトを追跡することです。しかし、あなたのプロジェクトが1つのファイルであれば、確かにそうすればよいのですが、1万個のファイルを追跡すると、Gitはそれらを個別のファイルとして見ることは決してありません。Gitはすべてを完全なコンテンツとして考えます。Gitのすべての履歴は、プロジェクト全体の履歴に基づいています...
(トランスクリプト こちら .)
それでも、飛び込んでみると
Gitの本
最初に言われるのは、Git におけるファイルは、次のいずれかであるということです。
追跡
または
未追跡
. さらに、Gitの経験全体がファイルのバージョン管理に向いているように私には思えます。というのは
git diff
または
git status
の出力はファイル単位で表示されます。を使用する場合
git add
もファイル単位で選択できるようになります。また、ファイル単位で履歴を確認することもでき、非常に高速です。
この文章はどのように解釈すればよいのでしょうか。ファイルの追跡という点で、GitはCVSのような他のソース・コントロール・システムとどう違うのでしょうか?
どのように解決するのですか?
CVSでは、履歴はファイル単位で追跡されていました。ブランチは、様々なリビジョンを持つ様々なファイルから構成され、それぞれが独自のバージョン番号を持つかもしれません。CVS は、RCS ( リビジョン管理システム というように、個々のファイルを追跡していました。
一方、Gitはプロジェクト全体の状態をスナップショットで取得します。ファイルは独立して追跡され、バージョン管理されません。リポジトリ上のリビジョンは、一つのファイルではなく、プロジェクト全体の状態を参照するのです。
Gitがファイルを追跡すると言った場合、それは単にプロジェクトの歴史に含まれることを意味します。Linusの講演では、Gitの文脈でファイルを追跡することに言及しているのではなく、CVSやRCSのモデルとGitで使われているスナップショット・ベースのモデルを対比していたのです。
関連
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
git revert 複数コミット
-
[解決済み] git: fatal: リモートリポジトリから読み取れませんでした。
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] Git でファイルがいつ削除されたかを調べる
-
[解決済み] ローカルのGitの変更を削除するさまざまな方法
-
[解決済み] Git でのファイル名変更の扱い
-
[解決済み】Gitでコミットをチェリーピックするというのはどういう意味ですか?
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】マージ後のコミットでGitエラー - fatal: マージ中に部分コミットができない
-
[解決済み] [email protected] へのいくつかの参考文献のプッシュに失敗しました。
-
[解決済み] リモートから<branch name>とマージするように構成が指定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] GitHubに空のブランチを作成する
-
[解決済み] TortoiseGitで「git did not exit cleanly (exit code 128)」というエラーを解決するには?[クローズド]
-
[解決済み] git status に fatal: bad object HEAD と表示される。
-
[解決済み] fatal: bad revision "とはどういう意味ですか?
-
[解決済み] 新しいBitbucketでリポジトリを削除するにはどうすればよいですか?
-
[解決済み] エラーです。リベースを使用してプルできません。あなたはステージングされていない変更を持っています
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る