Laten we een nieuw project initialiseren.
$ mkdir-project$ cd-project
$ git init
Geïnitialiseerd lege Git-repository in /Users/zakh_eecs/_work/LearnGIT/git_add/project/.git/
$ echo "Nieuw project" > Leesmij.tekst
$ git add ReadMe.tekst
$ git commit -m "Initial Commit"
[master (root-commit) 47b9af1] Initiële commit
1 bestand gewijzigd, 1 invoeging (+)
aanmaakmodus 100644 Leesmij.tekst
In dit project hebben we een ReadMe . toegevoegd.txt-bestand. We gebruikten het “git add” commando om de ReadMe toe te voegen.tekst. Het add-commando is niet alleen voor het toevoegen van bestanden. Het voegt ook elke bestandswijziging toe. Voor deze tutorial zullen we alleen bestanden toevoegen en verwijderen om het simpel te houden. Maar beschouw het add-commando als het toevoegen van wijzigingen aan het staging-gebied. Vervolgens moet je de opdracht commit gebruiken om de wijzigingen officieel te maken.
Als je met veel bestanden en mappen te maken hebt, is het moeilijk om elke wijziging afzonderlijk toe te voegen. Je kunt dus de volgende commando's gebruiken:
$ git toevoegen .$ git add -A
Laten we eens kijken hoe de twee commando's zich gedragen:
$ raak een . aan.txt b.txt c.tekst$ git toevoegen .
$ git-status
Op branch master
Door te voeren wijzigingen:
(gebruik "git reset HEAD"
nieuw bestand: a.tekst
nieuw bestand: b.tekst
nieuw bestand: c.tekst
$ git commit -m "Voeg een . toe.txt, b.txt, c.tekst"
[master 9ca90fc] Voeg een . toe.txt, b.txt, c.tekst
3 bestanden gewijzigd, 0 invoegingen (+), 0 verwijderingen (-)
maak modus 100644 a.tekst
maakmodus 100644 b.tekst
maakmodus 100644 c.txt $ raak x . aan.txt ja.txt z.tekst
$ git add -A
$ git-status
Op branch master
Door te voeren wijzigingen:
(gebruik "git reset HEAD"
nieuw bestand: x.tekst
nieuw bestand: y.tekst
nieuw bestand: z.tekst
$ git commit -m "Voeg x toe.txt, ja.txt, z.tekst"
[master 8af8c12] Voeg x . toe.txt, ja.txt, z.tekst
3 bestanden gewijzigd, 0 invoegingen (+), 0 verwijderingen (-)
aanmaakmodus 100644 x.tekst
maakmodus 100644 y.tekst
maakmodus 100644 z.tekst
Beide opties lijken hetzelfde te werken.
Om verder te onderzoeken, laten we een situatie creëren waarin we iets toevoegen op het hoofdniveau van de werkdirectory en dan meer bestanden in een map toevoegen:
$ raak 1 . aan.tekst$ mkdir nieuw
$ cd nieuw
$ raak m aan.txt niet.txt uit.tekst
$ git toevoegen .
$ git-status
Op branch master
Door te voeren wijzigingen:
(gebruik "git reset HEAD"
nieuw bestand: m.tekst
nieuw bestand: n.tekst
nieuw bestand: o.tekst
Niet-getrackte bestanden:
(gebruik "git add ."
… /1.tekst
Merk op dat Git de 1 . niet heeft toegevoegd.txt-bestand in de map op een hoger niveau.
Als we een map hebben gemaakt met de naam genest met d.txt-bestand en gebruik de git add. commando opnieuw, we zien dat o.txt is toegevoegd maar 1.txt is nog niet toegevoegd.
$ mkdir genest$ raak genest/d . aan.tekst
$ git toevoegen .
$ git-status
Op branch master
Door te voeren wijzigingen:
(gebruik "git reset HEAD"
nieuw bestand: m.tekst
nieuw bestand: n.tekst
nieuw bestand: genest/d.tekst
nieuw bestand: o.tekst
Niet-getrackte bestanden:
(gebruik "git add ."
… /1.tekst
Laten we nu het git add -A commando gebruiken:
$ git add -A$ git-status
Op branch master
Door te voeren wijzigingen:
(gebruik "git reset HEAD"
nieuw bestand: ... /1.tekst
nieuw bestand: m.tekst
nieuw bestand: n.tekst
nieuw bestand: genest/d.tekst
nieuw bestand: o.tekst
Nu, 1.txt in de map is toegevoegd aan het verzamelgebied.
Zo zien de mappen eruit
|--1.tekst
|--LeesMij.tekst
|--a.tekst
|--b.tekst
|--c.tekst
|--x.tekst
|--y.tekst
|--z.tekst
'-- nieuw
|--m.tekst
|--n.tekst
|--uit.tekst
'-- genest
|--d.tekst
Dus, wanneer je “git add . gebruikt .” commando, het zal alle wijzigingen van dat niveau toevoegen. Maar wanneer je de "git add -A" optie gebruikt, zal het zoeken naar wijzigingen in de module en deze toevoegen.
Conclusie
Git add-opdracht biedt krachtige manieren om gewijzigde bestanden toe te voegen. U kunt de natuurlijke directoryhiërarchie van uw codes gebruiken om te bepalen wat er wordt toegevoegd.
Verdere studie:
- https://git-scm.com/docs/git-add
- Git: Leer versiebeheer met Git: een stapsgewijze ultieme beginnershandleiding
- Versiebeheer met Git: Krachtige tools en technieken voor collaboratieve softwareontwikkeling
- Pro Git, 2e editie