Devrais-je ajouter des fichiers à git chaque fois que je veux donner?
Je suis nouveau sur git, à venir à partir de SVN monde. Jusqu'à présent, il semble beaucoup plus utile, mais je suis encore à travailler sur the kinks.
Actuellement, mon travail est comme ceci:
apporter des modifications > git add . > git commit > entrez un message du journal
Ce que je ne comprends pas, c'est pourquoi il me semble avoir à ajouter de l'ensemble de mes fichiers avant de m'engager. Ils sont sous contrôle de version déjà? Pourquoi ne git commit dites moi il n'y a pas de changements par rapport à la commettre, mais aussi le point que j'ai modifié les fichiers? Il dit "Changé, mais pas de mise à jour:". Qu'est-ce que cela signifie??
Désolé si c'est facile, j'ai l'impression que je suis absent de certains primordial du point de
- Grand questionI trouvé cela très confus ainsi. Apparemment, vous n'avez pas "Ajouter" pour le projet, vous ajoutez à la commettre!
Vous devez vous connecter pour publier un commentaire.
Cela vous permet de séparer les livraisons des modifications. Si vous ne voulez commettre ces fichiers à tout moment, en vertu d'un commit, et ces fichiers à tout moment, en vertu d'un deuxième commit, vous pouvez faire:
git add -p
, vous pouvez en scène certaines modifications dans un fichier, mais pas d'autres.Git fonctionne en utilisant une "mise en scène" de la zone où vous vous préparez ce que vous allez réunir en tant que commis. Donc, vous avez décidé ce que l'ensemble des modifications que vous souhaitez engager (par exemple, l'ensemble ou un sous-ensemble de), vous devez les ajouter à la zone de transit, et ensuite, vous vous engagez à ce que la zone de transit.
Lorsque vous appelez
git status
, il vous montre ce qui a été ajouté à la zone de transit (c'est à dire "les Modifications soient validées"), ce qui a été modifié entre les fichiers git est suivi (c'est à dire Changé, mais pas mis à jour"), et tous les nouveaux fichiers que vous n'avez jamais ajouté avant (c'est à dire sans traces de fichiers).Si vous voulez juste de commettre des trucs que vous avez changé, mais pas inclure les fichiers nouvellement créés, vous pouvez utiliser
git commit -a -m "Comment for modified files already under source control."
fatal: Paths with -a does not make sense.
Vous n'êtes pas à l'ajout de fichiers dans le sens que vous mettez sous git de contrôle, mais vous êtes en les ajoutant à une liste des changements. Certains autres Mec comme perforce ce faire ainsi. C'est pratique pour la construction des ensembles distincts de changements que vous n'êtes pas prêt à s'engager, mais que vous souhaitez engager dans des blocs distincts.
Que vous pouvez vous engager dans une plus subversionish façon simplement en faisant
git commit -a
-- qui vont commettre tout ce qui git sait sur qui a été changé, tout comme ce quesvn commit
n'.(PS. Puisque vous venez de le svn monde, je vais vous parler de l'autre gotcha qui m'a jeté pour une boucle pour un peu, lorsque vous
git diff
, il va seulement vous montrer la diff entre votre situation actuelle et de ce qui est dans la liste, PAS la différence entre l'état actuel et le dernier commit. Si vous exécutezgit diff
immédiatement après l'ajout de tous les fichiers modifiés (par exemple,git add -u
), vous verrez un vide diff, même si il y a des différences à être commis!)