Esistono più domande su Stack Overflow che risolvono il problema della gestione temporanea e delle sole parti dei file. Tuttavia, non posso farlo funzionare.Git: commit modifiche parziali
Diciamo che vogliamo implementare una classe di matematica manichino in php (la lingua non ha importanza), con alcuni metodi di base come: add
, subtract
, multiply
e divide.
Iniziamo con la definizione della classe:
<?php
class Math {
}
?>
Ora:
$ git add math.php
$ git commit -m "Create Math class."
Nella fase successiva attuiamo sia add
e subtract
quattro metodi:
<?php
class Math {
public function add($a, $b) {
return $a + $b;
}
public function subtract($a, $b) {
return $a - $b;
}
}
?>
Ma ora vogliamo commettere l'attuazione del add
e le subtract
metodi commit separati.
È possibile?
Quello che ho cercato
$ git add -p
appare quanto segue:
mi piacerebbe dividere il pezzo in blocchi più piccoli, in modo da premere s
, e la seguente appare:
Sembra che Git non l'abbia diviso in pezzi più piccoli.
Proviamo ora a modificare manualmente il blocco corrente. Quindi premo: e
.
mio editor di testo predefinito (sublime del testo) si apre, e qui posso modificare il pezzo:
provo a cancellare semplicemente la linea 8,9,10,11 - perché voglio stage solo la funzione add
. risparmio, chiudere l'editor, ma git dice:
Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]?
Sono veramente nuovo per git add -p
e messa in scena interattiva, quindi forse è qualcosa che ho fatto di sbagliato, o semplicemente non è possibile quello che voglio, e spero davvero che alcuni utenti git più esperti abbiano alcune istruzioni forse anche una soluzione per me.
Grazie!
Stai cercando di imparare il "modo giusto" di farlo? Personalmente, non mi preoccupo di questi dettagli. Vorrei solo rimuovere una funzione, commetterlo, aggiungerlo di nuovo e commetterlo. – TheBuzzSaw
Sì, questo è esattamente quello che ho fatto nel mio ultimo progetto. Forse questo è il modo più semplice. Tuttavia, mi piacerebbe farlo in git, quindi decidere quale strada scegliere. –
possibile duplicato di [Conferma solo parte di un file in Git] (http://stackoverflow.com/questions/1085162/commit-only-part-of-a-file-in-git) – 7ochem