Domanda

Sto facendo fatica a capire alcuni concetti git / DCVS. Ecco cosa è successo:

  1. Ho creato un progetto git e l'ho importato da un repository SVN
  2. Ho effettuato alcuni commit
  3. Volevo sperimentare qualcosa, quindi ho creato un ramo chiamato constants-update
  4. Sono passato al ramo constants-update , ho spostato alcuni file, ne ho cancellati altri e ne ho aggiunti molti altri
  5. Mi sono impegnato in questo ramo
  6. Ora sto provando a passare al mio ramo principale usando git checkout master
  7. Ho ricevuto questo errore: errore: hai apportato modifiche locali a "src / groovy / Constants.groovy"; impossibile cambiare ramo.

La mia comprensione di DCVS è che posso cambiare i rami a piacimento, anche se alcuni rami hanno più o meno file degli altri, purché esegua il commit dei miei file. Ho provato a eseguire il commit con git commit -a e passando al ramo principale, ma ho lo stesso errore.

Come nota a margine, quando commetto git mi avverte che LF sarà sostituito da CRLF e mi avverte anche di alcuni spazi bianchi finali; dopo aver eseguito il commit faccio uno git status e un mucchio di file appare sempre come #modified ... .

È legato a git / windows o non capisco correttamente cosa dovrebbe succedere? Voglio solo passare al mio ramo principale senza perdere le mie modifiche nell'altro ramo.

È stato utile?

Soluzione 3

Ho risolto il problema hacking my hook pre-commit (commentando queste righe in .git / hooks / pre-commit con un # ):

#       if (/\s$/) {
#       bad_line("trailing whitespace", 

Ho risolto il problema hacking my hook pre-commit (commentando queste righe in .git / hooks / pre-commit con un # ):

<*>); # }

Altri suggerimenti

Cerca git-stash per cambiare i rami mentre ci sono cambiamenti non salvati nel ramo corrente.

Hai ragione nel pensare a come dovrebbe funzionare.

Tuttavia, sembra che git stia riscontrando problemi con i finali di riga e pensa che tutti i tuoi file vengano modificati anche quando non lo sono. Non uso git su Windows, ma stavo per suggerire " core.autocrlf " opzione per far funzionare la gestione crlf. Tuttavia, il seguente post di blog indica che questa potrebbe non essere una buona idea: http://weierophinney.net/matthew/archives/191-git-svn-Tip-dont-use-core.autocrlf.html

Basta usare la seguente opzione nel file .gitconfig che risiede nella directory degli utenti.

[core] autocrlf = true

E risolverà il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top