web-dev-qa-db-ja.com

Gitでこれらの単語は何を意味します:リポジトリ、フォーク、ブランチ、クローン、トラック?

ここのセマンティクスについては、正直なところ明確ではありません。それらはすべて、コード+履歴ユニットのコピー/バリアントに関するものですが、それまでは、私が言うことができるかどうかはわかりません。この論理構造はどこかで説明されていますか?

129
Eric Anderson

リポジトリは、単に作業の履歴が保存される場所です。多くの場合、.git作業コピーのサブディレクトリ-作業中のファイルの最新の状態のコピー。

プロジェクトをフォークするには(特定の時点で誰かのリポジトリからソースを取得し、独自の異なる変更を適用します)、リモートリポジトリのクローンを作成してそのコピーを作成し、ローカルリポジトリで独自の作業を行い、変更をコミットします。

リポジトリ内にはブランチがあり、ブランチは事実上、独自のリポジトリ内で分岐しています。ブランチには、リポジトリに先祖コミットがあり、変更によってそのコミットから分岐します。後でブランチの変更をマージできます。ブランチを使用すると、複数の異なる機能を一度に操作できます。

リモートリポジトリ内の個々のブランチを追跡することもできます。これにより、他の個人のブランチから変更を取得し、自分のブランチにマージできます。これは、あなたと友人が一緒に新しい機能を開発している場合に便利です。

たくさんのすばらしいgit本がオンラインにあります。 ProGit および Git Magic をご覧ください。また、公式チュートリアルとコミュニティブックもご覧ください。

146
nfm

RTFMで自分の質問に答えます。

しかし、 this fine manualを読んでください。著者が言うように:

「ここから得られる結論は、Gitの仕組みを理解している場合にのみGitを実際に使用できるということです。どのコマンドをどの時間に実行する必要があるかを記憶するだけで、短期的には機能しますが、動けなくなるか、さらに悪いことに何かを壊すのは時間の問題です。

「残念ながら、Gitの既存のリソースの半分は、そのアプローチを採用しています。彼らは、どのコマンドをいつ実行するかを説明し、それらのコマンドを模倣するだけでうまくいくと期待しています。残りの半分はすべての概念を説明しますが、私が見たところから、Gitがどのように機能するかを既に理解していることを前提にGitを説明しています。

13
Eric Anderson

このGoogleTechTalk は、言語を学習しながら、舞台裏で実際に何が起こっているかを学ぶためのGitの素晴らしい紹介です。それはGitへの非常に早い貢献者によって与えられ、彼はGitへの導入の方法として2007年にこの講演をしました。このトークを見ると、リポジトリ、フォーク、ブランチなど、各Wordが何であるかがわかるだけでなく、これらのそれぞれが作成、マージなどされたときに舞台裏で何が起こっているかもわかります。

アドレスは長いですが、非常に有益です。また、Gitを他のバージョン管理システムと対比しているため、Gitがどのように作成されたのか、他の管理システムと比較してGitがどのような利点があるのか​​を理解できます。話は古くても、立ち上げて実行すると非常に役立ちます。私はマニュアルに飛び込む前にこれを見ました。その結果、物事はもっと理にかなっていると思います。

3
Matt