web-dev-qa-db-fra.com

Git: Où se trouve exactement le "répertoire de travail"?

Je vais à travers quelques tutoriels Git. Le concept de " répertoire de travail " continue à être mentionné, cependant, aucun des tutoriels ni des documents que j'ai lus ne précise où ou ce que ce " répertoire de travail " est.

Je pensais que c’était en fait le répertoire parent du .git, a.k.a le répertoire dans lequel j’exécute git init. Mais le tutoriel vidéo que je regarde parle de l’état de rien à commettre et " répertoire de travail clean ":

En fait, vous pouvez créer une copie du référentiel et la créer copier pour qu’il n’ait pas de répertoire de travail, c’est en fait appelé le clone nu. C'est en fait ce que GitHub utilise.

Si ma compréhension du " répertoire de travail " est correcte, comment un référentiel peut-il ne pas avoir un " répertoire de travail "? Et qu'est-ce que cela signifie, quand il est dit que GitHub utilise un " nu clone "?

17
shenkwen

Espérons que cela clarifie les choses pour nous:

Quelle est la différence entre un référentiel créé à l'aide de git init commande et la commande git init --bare?

Les référentiels créés avec la commande git init sont appelés "work" des répertoires. Dans le dossier de niveau supérieur du référentiel, vous trouverez deux choses:

A .git subfolder with all the git related revision history of your repo
A working tree, or checked out copies of your project files.

Les référentiels créés avec git init --bare sont appelés mises à nu. Ils sont structurés un peu différemment des répertoires de travail. Tout d'abord, ils ne contiennent aucune copie de travail ou extraite de vos fichiers source. Et deuxièmement, les dépôts nus stockent l’historique des révisions git de votre dépôt dans la racine dossier de votre référentiel plutôt que dans un sous-dossier .git. Remarque… nu Les dépôts ont généralement une extension .git.

Tiré de John Saints - Qu'est-ce qu'un référentiel Git?

Un clone Git nu ne contient pas de répertoire de travail de code extrait, en d’autres termes.
Voyez-le comme le répertoire .git (la base de données Git) sans rien d’autre.

11
jacmoe

C'est partout où vous avez terminé le projet. Par exemple, le répertoire dans lequel vous avez extrait une branche de votre projet. Il s'agit généralement du dossier contenant le dossier .git. C'est le répertoire de travail. Lorsque vous apportez des modifications aux fichiers de votre branche extraite, vous apportez des modifications au répertoire de travail. À ce stade, le répertoire de travail contient des modifications non validées. Ainsi, au départ, lorsque vous n'avez pas effectué de commits, le répertoire de travail sera propre car il n'y a aucune modification.

5
Som Bhattacharyya

Le répertoire de travail est simplement votre répertoire local actuel sur lequel vous travaillez .. par exemple, si vous avez master, dev et votrenom-dev comme branches distantes, si vous checkout from dev vers votrenom-dev , votrenom-dev est maintenant votre répertoire de travail si vous passez de ce répertoire de travail ( votrenom-dev ) à un autre dire dev , dev est maintenant votre nouveau répertoire de travail

3
Babajide Apata

Pour un peu combiner les deux autres réponses:

Comme indiqué dans la Documentation Git:

Le répertoire de travail est une extraction unique d'une version du projet. 

Cela signifie essentiellement que si vous extrayez une branche (par exemple, le maître) et que vous êtes assis sur un commit particulier (par exemple, HEAD), votre répertoire de travail est le terme générique "" pour désigner tous vos fichiers et dossiers.

Il s’agit cependant d’un n’est pas un répertoire/dossier particulier. Le répertoire de travail couvre tous les répertoires, fichiers ... tout.
Je le mentionne parce que lorsque vous voulez valider certains fichiers, ceux-ci seront dans le répertoire de travail et vous devrez les les placer (avec git add) avant de les valider (avec git commit).

2
Harmelodic

Selon la documentation :

Enfin, vous avez votre répertoire de travail. Les deux autres arbres stockent leur contenu de manière efficace mais peu pratique, dans le dossier .git. Le répertoire de travail les décompresse en fichiers réels, ce qui facilite grandement leur modification. Pensez au répertoire de travail comme à un bac à sable, où vous pouvez essayer des modifications avant de les valider dans votre zone intermédiaire (index), puis dans l'historique.

1
Michael Ma