3

私の質問は本当に無実です。私は git を読んでいて、プッシュ、プル、ブランチの作成などの基本をすでに知っています。私のメンターは、git を使用する適切な方法は、リソースをプルし、新しいローカル ブランチを作成し、そのローカル ブランチを転送して編集し、完了したらマスター ブランチに戻ってローカル ブランチとマージすることだと言いました。私の質問は、舞台裏で正確に何が起こっているのですか?

  1. つまり、git がローカル ブランチを作成すると、編集可能なマスター ブランチのコピーが作成されるのでしょうか? もしそうなら、これらのコピーはどこにありますか?

  2. 万が一、ローカル ブランチを台無しにしてしまった場合、変更を元に戻すにはどうすればよいですか (たとえば、マスターをプルしたときの状態に戻したいとします)。master に戻ってローカルブランチを削除するだけの簡単な問題ですか?

  3. 人々がそれをバージョン管理と呼ぶ理由は、私が思うにバージョンを表すブランチのためだと思います。私は正しいですか?

  4. なぜマスターはブランチと呼ばれるのですか?トランクじゃないの?わかりました、非常にばかげた質問です。#​​4 は無視してください...ハハハ!

私の無邪気な子供のような質問への回答をいただければ幸いです。<3 <3 <3

4

2 に答える 2

2

つまり、git がローカル ブランチを作成すると、編集可能なマスター ブランチのコピーが作成されるのでしょうか? もしそうなら、これらのコピーはどこにありますか?

ブランチはコピーではありません。Git のブランチは、最新のコミットへの単なる「ポインター」です。commit オブジェクトはその親を指し、それが「ブランチ」全体を取得する方法です。

したがって、マスターから分岐するとすぐに、同じコミットへのポインターがもう 1 つ取得されます。それ以下でもそれ以上でもありません。マスターとブランチの両方が同じコミットを指すようになりました。ブランチでコミットし続けると、ブランチ ポインターはそのブランチ固有のコミットを指すように移動し続けます。

万が一、ローカル ブランチを台無しにしてしまった場合、変更を元に戻すにはどうすればよいですか (たとえば、マスターをプルしたときの状態に戻したいとします)。master に戻ってローカルブランチを削除するだけの簡単な問題ですか?

ブランチが気に入らない場合は、削除してください - git branch -d hotfixGit のブランチは安価です。先ほど言ったように、コミットへのポインタにすぎません。つまり、41 文字の SHA-1 チェックサムを含むファイルであることを意味します。.git\refs\heads\branchname

ブランチを削除したくない場合は、次のようなものを使用して以前のコミットにリセットしますgit reset --hard HEAD~1

人々がそれをバージョン管理と呼ぶ理由は、私が思うにバージョンを表すブランチのためだと思います。私は正しいですか?

変更の単位である各リビジョンまたはコミットのために、バージョン管理と呼びます。ブランチは、特定のコミットまたは分岐点以降の変更のコレクションです。\

PS: もちろん、私は ProGit を言い換えているので、読んだとコメントしたので、私の答えが役立つかどうかはわかりません。

于 2011-04-29T22:48:18.773 に答える