Penso che dovrebbe funzionare per copiare la directory da rinominare in una nuova directory con il nome desiderato ed eliminare la vecchia directory , e git add
, git commit
e push
tutto. Ma è questo il modo migliore?
Penso che dovrebbe funzionare per copiare la directory da rinominare in una nuova directory con il nome desiderato ed eliminare la vecchia directory , e git add
, git commit
e push
tutto. Ma è questo il modo migliore?
Risposte:
Rinomina (o sposta) di base:
git mv <old name> <new name>
Rinomina tra maiuscole e minuscole, ad es. da casesensitive
a: CaseSensitive
devi usare due passaggi:
git mv casesensitive tmp
git mv tmp CaseSensitive
( Altre informazioni sulla distinzione tra maiuscole e minuscole in Git ... )
... seguito da commit e push sarebbe il modo più semplice per rinominare una directory in un repository git.
casesensitive
a CaseSensitive
, puoi farlo in questo modo: git mv casesensitive Temp
e poi git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
quindi aggiungere nuovamente e impegnare
git config core.ignorecase false
e poi eseguire i comandi in successione, altrimenti per la seconda parte avrei ricevuto un source is empty
errore.
Se viene visualizzato questo errore: irreversibile: ridenominazione di "nome utente" non riuscita: argomento non valido
Prova questo:
git mv foldername tempname && git mv tempname folderName
git mv foldername tempname
e git mv tempname folderName
, che dovrebbe funzionare su Windows.
1. Cambia il nome di una cartella da vecchia cartella a nuova cartella
git mv oldfolder newfolder
2. Se newfolder è già nel tuo repository e desideri sovrascriverlo e utilizzare: - force
git mv -f oldfolder newfolder
Non dimenticare di aggiungere le modifiche all'indice e di commetterle dopo aver rinominato con git mv.
3. Rinominare foldername in folderName su file system senza distinzione tra maiuscole e minuscole
La semplice ridenominazione con un normale comando mv (non git mv) non verrà riconosciuta come scambio di file da git. Se lo provi con il comando 'git mv' come nella riga seguente
git mv foldername folderName
Se stai usando un filesystem senza distinzione tra maiuscole e minuscole, ad esempio se sei su un Mac e non lo hai configurato per la distinzione tra maiuscole e minuscole, visualizzerai un messaggio di errore come questo:
fatale: ridenominazione di "nome utente" non riuscita: argomento non valido
Ed ecco cosa puoi fare per farlo funzionare: -
git mv foldername tempname && git mv tempname folderName
Ciò divide il processo di ridenominazione rinominando la cartella inizialmente con un nome utente completamente diverso. Dopo averlo rinominato con il diverso nomecartella, la cartella può finalmente essere rinominata nel nuovo nomeCartella. Dopo questi 'git mv's, di nuovo, non dimenticare di aggiungere e confermare le modifiche. Anche se questa probabilmente non è una bella tecnica, funziona perfettamente. Il filesystem non riconoscerà ancora un cambiamento nei casi di lettere, ma git lo fa a causa di rinominarlo con un nuovo nome utente, ed è tutto ciò che volevamo :)
È possibile rinominare la directory utilizzando il file system. Quindi puoi fare git rm <old directory>
e git add <new directory>
( pagina di aiuto ). Quindi puoi impegnarti e spingere.
Git rileverà che i contenuti sono gli stessi e che è solo un'operazione di ridenominazione e apparirà come una voce di ridenominazione nella cronologia. È possibile verificare che questo sia il caso prima dell'utilizzo del commitgit status
Dall'applicazione Web penso che tu non possa, ma puoi rinominare tutte le cartelle in Git Client, sposterà i tuoi file nelle nuove cartelle rinominate, che eseguirà il commit e passerà al repository remoto.
Ho avuto un problema molto simile: ho dovuto rinominare cartelle diverse da maiuscole a minuscole (come Abc -> abc), ho rinominato tutte le cartelle con un nome fittizio (come 'abc___') e che mi sono impegnata nel repository remoto, dopo che ho rinominato tutte le cartelle con il nome originale con le lettere minuscole (come abc) e le ho prese!
L'ho risolto in due passaggi. Per rinominare la cartella usando il comando mv sono necessari i diritti per farlo, se non hai ragione puoi seguire questi passaggi. Supponiamo di voler rinominare caseensensens in Casesensitive.
Passaggio 1: Rinomina la cartella (sensibile al maiuscolo / minuscolo) in qualcos'altro da Explorer. ad es. Rinomina maiuscole / minuscole in cartella1 esegue il commit di questa modifica.
Passaggio 2: rinominare questa cartella (cartella1) appena nominata con il nome sensibile al maiuscolo / minuscolo previsto (Casesensitive) ad es. Rinomina cartella1 in Casesensitive. Commetti questo cambiamento.
Per la ridenominazione con distinzione tra maiuscole e minuscole, git mv somefolder someFolder
ha funzionato per me prima, ma oggi non per qualche motivo. Quindi, come soluzione alternativa, ho creato una nuova cartella temp
, spostato tutto il contenuto somefolder
in temp
, cancellato somefolder
, eseguito il commit temp
, quindi creato someFolder
, spostato tutto il contenuto temp
in someFolder
, eliminato temp
, impegnato e spinto someFolder
e ha funzionato! Si presenta come someFolder
in git.
Rinomina semplicemente la cartella. git è un "content-tracker", quindi gli hash SHA1 sono gli stessi e git sa che lo hai rinominato. L'unica cosa che cambia è l'oggetto albero.
rm <directory>
git add .
git commit