いくつかのGitチュートリアルを行っています。 「working directory」の概念は言及され続けていますが、私が読んだチュートリアルやドキュメントでは、この「working directory」がどこにあるのか、何を指しているのかを指摘していません。
私はそれが実際に.git
の親ディレクトリ、別名a.k.a実行するディレクトリgit init
in。しかし、私が見ているビデオチュートリアルでは、nothing to commitおよび "working directory clean"の状態について話しています。
実際、実際にリポジトリのコピーを作成し、そのコピーを作成して作業ディレクトリがないようにすることができます。これは実際にはベアクローンと呼ばれます。これは実際にはGitHubが使用するものです。
「working directory」の理解が正しい場合、リポジトリに「working directory」を持たない方法はありますか?また、GitHubで「bare clone」を使用すると言われた場合、どういう意味ですか?
うまくいけば、次のことがわかります。
Git initコマンドとgit init --bareコマンドを使用して作成されたリポジトリの違いは何ですか?
Git initコマンドで作成されたリポジトリは、作業ディレクトリと呼ばれます。リポジトリーの最上位フォルダーには、次の2つのものがあります。
A .git subfolder with all the git related revision history of your repo A working tree, or checked out copies of your project files.
Git init --bareで作成されたリポジトリは、ベアリポジトリと呼ばれます。これらは、作業ディレクトリとは少し構造が異なります。まず、ソースファイルの作業コピーまたはチェックアウトコピーは含まれていません。 2番目に、ベアリポジトリは、リポジトリのgit改訂履歴を.gitサブフォルダーではなく、リポジトリのルートフォルダーに保存します。注…むき出しのリポジトリには、通常.git拡張子が付けられます。
つまり、裸のgitクローンには、チェックアウトされたコードの作業ディレクトリが含まれていません。
それを単に.git
ディレクトリ(Gitデータベース)には何もありません。
これは、プロジェクトをチェックアウトする場所です。たとえば、プロジェクトのブランチをチェックアウトしたディレクトリ。通常、.git
フォルダーを含むフォルダーです。これが作業ディレクトリです。チェックアウトしたブランチのファイルに変更を加えると、作業ディレクトリに変更が加えられます。この時点で、作業ディレクトリにはコミットされていない変更があります。したがって、最初にコミットを行っていない場合、変更がないため作業ディレクトリはクリーンになります。
作業ディレクトリは、単に、作業中の現在のローカルディレクトリです。たとえば、リモートブランチとしてmaster、devおよびyourname-devがある場合、checkout from dev to yourname-dev、yourname-devは、この(yourname-dev)作業ディレクトリから別の言い回しdev、 devが新しい作業ディレクトリになりました
ドキュメント によると:
最後に、作業ディレクトリがあります。他の2つのツリーは、.gitフォルダー内にコンテンツを効率的だが不便な方法で保存します。作業ディレクトリはそれらを実際のファイルに解凍します。これにより、編集がはるかに簡単になります。作業ディレクトリをサンドボックスと考えてください。ここでは、変更をステージングエリア(インデックス)にコミットしてから履歴にコミットする前に変更を試すことができます。
他の2つの答えを組み合わせるには:
Gitドキュメンテーション: で述べられているように
作業ディレクトリは、プロジェクトの1つのバージョンの単一のチェックアウトです。
これは本質的に、ブランチ(例:マスター)をチェックアウトし、特定のコミット(例:HEAD)に座っている場合、作業ディレクトリはすべてのファイルとフォルダーの「傘」の用語であることを意味します。
ただしは特定のディレクトリ/フォルダではありません。作業ディレクトリは、すべてのディレクトリ、ファイル...すべてをカバーします。
いくつかのファイルをコミットしたい場合、それらのファイルは作業ディレクトリにあり、前にstage(git add
を使用)する必要があるため、これについて言及します。それらをコミットします(git commit
を使用)。
現地のレポジトリで直接働いていますか?
Microsoftの指示に従う場合[参照。 https://docs.Microsoft.com/en-us/Azure/devops/repos/git/clone?view=Azure-devops&tabs=visual-studio ]、ここで最終的に開きます。 slnソリューションファイル。リポジトリがデフォルトで保持されているC:\ Users \\ source\reposではなく、大規模なD:ドライブ(D:\ dev)のコードで作業することを好むため、それは私にとって間違っているようですD:\ devエリアで作業できる限り、ローカルリポジトリがそこに保持されていることを気にしないでください-それは理想的ではありません)。