Hoe berg je een bestand op dat niet getraceerd is?
Ik heb veranderingen aan een bestand, plus een nieuw bestand, en zou git stash willen gebruiken om ze op te bergen terwijl ik naar een andere taak overschakel. Maar git stash zelf stasht alleen de wijzigingen aan het bestaande bestand; het nieuwe bestand blijft in mijn werkstructuur, en vertroebelt mijn toekomstige werk. Hoe kan ik dit ongevolgde bestand stashen?
1274
3
Om je werkdirectory op te slaan inclusief ongevolgde bestanden (vooral die bestanden die in de .gitignore staan) dan wil je waarschijnlijk dit cmd gebruiken:
git stash --include-untracked
Meer details:
Update 17 mei 2018:
Nieuwe versies van git hebben nu
git stash --all
die alle bestanden stasht, inclusief untracked en genegeerde bestanden.git stash --include-untracked
raakt genegeerde bestanden niet meer aan (getest op git 2.16.2).Oorspronkelijk antwoord hieronder:
*[Waarschuwing, dit zal je bestanden permanent verwijderen als je enige directory/ entries in je gitignore bestand hebt]1**.
Vanaf versie 1.7.7 kun je
git stash --include-untracked
ofgit stash save -u
gebruiken om untracked bestanden te stashen zonder ze te stagen.Voeg het bestand toe (
git add
) en begin het te volgen. Dan stashen. Omdat de gehele inhoud van het bestand nieuw is, zal het worden gestasht, en kun je het manipuleren als dat nodig is.Voeg het bestand toe aan de index:
De volledige inhoud van de index, plus alle niet-geplaatste wijzigingen aan bestaande bestanden, zullen allemaal in de stash terechtkomen.
Ik dacht dat dit opgelost kon worden door git te vertellen dat het bestand bestaat, in plaats van de hele inhoud ervan naar het staging gebied te committen, en dan
git stash
aan te roepen. Araqnid beschrijft hoe je het eerste kunt doen.of
Het laatste werkt echter niet: