# Git, modifiche su un ramo

**URL:** <https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615>\
**Category:** IT\
**Created:** [December 7, 2011, 10:53am UTC](https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615 "2011-12-07T10:53:26Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [December 7, 2011, 10:53am UTC](https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615/1 "2011-12-07T10:53:26Z")

</div>

Buongiorno a tutti,

vi illustro la mia situazione:

ho il mio bel progetto rails in locale con due rami:

- master
- sperimentale

faccio “git checkout sperimentale”  
poi mi diverto a creare/modificare file all’interno del ramo…

finito lo smanettamento selvaggio decido che quanto ho appena fatto e’  
un disastro e che potevo farlo diversamente…  
(non ho ancora fatto “git add .” o “git commit -m ‘ho  
aggiunto/modificato qualcosa’”)

c’e’ un modo per annullare tutte le modifiche effettuate senza  
committare?

oppure sono costretto a fare il commit delle “modifiche selvaggie” e poi  
fare un reverse?

nel caso debba fare un reverse (se si chiama cosi’…) come sarebbe il  
comando per tornare al commit precedente?

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 7, 2011, 11:02am UTC](https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615/2 "2011-12-07T11:02:59Z")

</div>

2011/12/7 Luca B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

Ciao

[cut]

> c’e’ un modo per annullare tutte le modifiche effettuate senza  
> committare?

git checkout path/to/file

se sei sicuro di voler annullare tutte le modifiche fatte nel branch  
locale e non ancora committate puoi eseguire direttamente:

git checkout -f

[cut]

Maurizio

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 7, 2011, 11:22am UTC](https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615/3 "2011-12-07T11:22:50Z")

</div>

2011/12/7 maurizio de magnis [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> git checkout -f

Se hai anche creato dei file git checkout -f non basta per riportarti  
allo  
stato dell’ultimo commit: dovrai utilizzare git reset --hard HEAD.

Ciao  
Stefano

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 7, 2011, 11:31am UTC](https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615/4 "2011-12-07T11:31:02Z")

</div>

Bho, su winzoz non funzia l’ultimo comando che mi hai passato, nel  
senso, mi dice “HEAD is now at \<messaggio dell’ultimo commit\>”  
e quindi sembra essere apposto…

ma facendo “git status” vedo ancora il file nuovo…

(ripeto, forse è colpa di win…)

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 7, 2011, 11:23am UTC](https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615/5 "2011-12-07T11:23:30Z")

</div>

Funziona! Grazie mille, so che era una cavolata ma per me ruby, rails,  
git… e’ tutto un mondo nuovo T\_T

Il giorno 07 dicembre 2011 11:02, maurizio de magnis \<  
removed\_email\_address@domain.invalid\> ha scritto:

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 7, 2011, 11:41am UTC](https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615/6 "2011-12-07T11:41:26Z")

</div>

grazie! Ora e’ perfetto! 😃

Per concludere farei due considerazioni al volo:

- In generale, conviene sempre fare il commit e semmai tornare indietro?  
Nel senso cosi’ tengo meglio traccia delle modifiche apportate al  
progetto?  
Oppure fare come abbiamo appena detto non e’ cosi’ grave, specialmente  
se  
e’ per sperimentare?

Il giorno 07 dicembre 2011 11:36, Stefano P.  
\<removed\_email\_address@domain.invalid

> ha scritto:

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 7, 2011, 11:37am UTC](https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615/7 "2011-12-07T11:37:06Z")

</div>

2011/12/7 Luca B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> Bho, su winzoz non funzia l’ultimo comando che mi hai passato, nel  
> senso, mi dice “HEAD is now at \<messaggio dell’ultimo commit\>”  
> e quindi sembra essere apposto…
> 
> ma facendo “git status” vedo ancora il file nuovo…

perch ho scritto una minchiata 🙂

> <https://stackoverflow.com/questions/4327708/git-reset-hard-head-leaves-untracked-files-behind>

serve anche un git clean -df (i file untracked che non sono presenti  
nell’index non vengono toccati nemeno con git reset).

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 7, 2011, 11:50am UTC](https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615/8 "2011-12-07T11:50:06Z")

</div>

2011/12/7 Luca B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):  
[cut]

> - In generale, conviene sempre fare il commit e semmai tornare indietro?  
> Nel senso cosi’ tengo meglio traccia delle modifiche apportate al progetto?  
> Oppure fare come abbiamo appena detto non e’ cosi’ grave, specialmente se  
> e’ per sperimentare?  
> [cut]

Come hai intuito te, dipende 🙂

E’ sempre meglio tenere le modifiche atomiche, in modo che ogni in  
ogni commit sia ben chiaro lo scopo della modifica.

Se poi stai sviluppando una feature ti basta creare un altro branch in  
cui inserire le tue modifiche.

Io eviterei i commit solo nel caso in cui la sperimentazione non si  
protragga per tanto tempo/codice.

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 7, 2011, 12:00pm UTC](https://www.ruby-forum.com/t/git-modifiche-su-un-ramo/214615/9 "2011-12-07T12:00:39Z")

</div>

2011/12/7 maurizio de magnis [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> protragga per tanto tempo/codice.

In ogni caso, imho, su git se lavori su un tuo branch separato meglio un  
commit in pi che un commit in meno. Puoi infatti fondere commits molto  
facilmente con git rebase -i (la condizione per che quel branch deve  
essere un branch locale su cui lavori solo te), prima di fare il merge  
del  
tuo lavoro dentro a master.
