Ik denk dat het zou moeten werken om de map te kopiëren die hernoemd moet worden naar een nieuwe map met de gewenste naam, en verwijder de old directory, en git add
, git commit
en push
alles. Maar is dit de beste manier?
Antwoord 1, autoriteit 100%
Basis hernoemen (of verplaatsen):
git mv <old name> <new name>
Hoofdlettergevoelig hernoemen—bijv. van casesensitive
tot casesensitive
: u moet twee stappen gebruiken:
git mv casesensitive tmp
git mv tmp CaseSensitive
(Meer over hoofdlettergevoeligheid in Git…)
…gevolgd door commit en push zou de eenvoudigste manier zijn om een map in een git repo te hernoemen.
Antwoord 2, autoriteit 9%
Als u deze foutmelding krijgt: fataal: hernoemen van ‘mapnaam’ mislukt: ongeldig argument
Probeer dit:
*nixOS
git mv foldername tempname && git mv tempname folderName
WinOS
git config core.ignorecase false; git mv foldername tempname; git mv tempname folderName
Antwoord 3, autoriteit 5%
1. Wijzig de naam van een map van oude map in nieuwe map
git mv oldfolder newfolder
2. Als newfolder al in uw repository staat & je wilt het overschrijven en het volgende gebruiken:-forceren
git mv -f oldfolder newfolder
Vergeet niet de wijzigingen toe te voegen aan index & commit ze na hernoemen met git mv.
3. Hernoemen van mapnaam naar mapnaam op hoofdletterongevoelige bestandssystemen
Eenvoudig hernoemen met een normaal mv-commando (niet git mv) wordt niet herkend als een bestandswijziging van git. Als je het probeert met het ‘git mv’-commando zoals in de volgende regel
git mv foldername folderName
Als je een hoofdletterongevoelig bestandssysteem gebruikt, b.v. u een Mac gebruikt en deze niet hoofdlettergevoelig hebt geconfigureerd, krijgt u een foutmelding zoals deze:
fataal: hernoemen van ‘mapnaam’ mislukt: ongeldig argument
En hier is wat u kunt doen om het te laten werken:-
git mv foldername tempname && git mv tempname folderName
Hiermee wordt het hernoemen opgesplitst door de map eerst te hernoemen naar een geheel andere mapnaam. Na het hernoemen naar de andere mapnaam kan de map eindelijk worden hernoemd naar de nieuwe mapnaam. Vergeet na die ‘git mv’s’ nogmaals niet om de wijzigingen toe te voegen en vast te leggen. Hoewel dit waarschijnlijk geen mooie techniek is, werkt het prima. Het bestandssysteem zal nog steeds geen verandering van de lettergevallen herkennen, maar git doet dat wel vanwege het hernoemen naar een nieuwe mapnaam, en dat is alles wat we wilden 🙂
Antwoord 4
U kunt de map hernoemen met behulp van het bestandssysteem. Dan kun je git rm <old directory>
en git add <new directory>
doen (Help-pagina). Dan kun je committen en pushen.
Git zal detecteren dat de inhoud hetzelfde is en dat het slechts een hernoemingsoperatie is, en het zal verschijnen als een hernoemingsitem in de geschiedenis. Je kunt controleren of dit het geval is voor de commit met behulp van git status
Antwoord 5
veel juiste antwoorden, maar toen ik hier belandde om te kopiëren & plak een map hernoemen met geschiedenis, ik vond dat
dit
git mv <old name> <new name>
verplaatst de oude map(zelf) om te nesten in de nieuwe map
terwijl
git mv <old name>/ <new name>
(let op de ‘/’)
verplaatst de geneste inhoudvan de oude mapnaar de nieuwe map
beide opdrachten kopieerden niet de geschiedenis van geneste bestanden. Ik heb uiteindelijk elke geneste map afzonderlijk hernoemd ✔
git mv <old name>/<nest-folder> <new name>/<nest-folder>
Antwoord 6
Vanaf Web Application denk ik dat je dat niet kunt, maar je kunt alle mappen in Git Client hernoemen, het zal je bestanden verplaatsen naar de nieuwe hernoemde mappen, dan committen en pushen naar externe repository.
Ik had een vergelijkbaar probleem:
Ik moest verschillende mappen hernoemen van hoofdletters naar kleine letters (zoals Abc -> abc), ik heb alle mappen hernoemd met een dummy-naam (zoals ‘abc___’) en vervolgens vastgelegd in de externe repository, daarna heb ik alle mappen hernoemd naar de oorspronkelijke naam met de kleine letter (zoals abc) en het kostte ze!
Antwoord 7
Voor hoofdlettergevoelig hernoemen, heeft git mv somefolder someFolder
eerder voor mij gewerkt, maar vandaag om de een of andere reden niet. Dus als tijdelijke oplossing heb ik een nieuwe map temp
gemaakt, alle inhoud van someFolder
verplaatst naar temp
, someFolder
verwijderd , de temp
vastgelegd, vervolgens someFolder
gemaakt, alle inhoud van temp
verplaatst naar someFolder
, temp
, vastgelegd en gepusht someFolder
en het werkte! Wordt weergegeven als someFolder
in git.
Antwoord 8
Gewoon de naam van de map wijzigen. git is een “content-tracker”, dus de SHA1-hashes zijn hetzelfde en git weet dat je het hernoemt. Het enige dat verandert is het boom-object.
rm <directory>
git add .
git commit